CodeGym /Kurse /Docker SELF /Backup mit rsync und scp

Backup mit rsync und scp

Docker SELF
Level 6 , Lektion 5
Verfügbar

Backup mit rsync und scp

1. Warum ist Sicherungskopie so wichtig?

Heute reden wir über eine der wichtigsten Aufgaben für alle, die in der IT- und Programmierwelt arbeiten – die Sicherungskopie von Daten. Wenn du jemals wichtige Daten wegen eines Festplattenfehlers oder eines Fehlers verloren hast, dann weißt du, wie kritisch das sein kann. Und wenn nicht – dann sind wir hier, um das zu verhindern!

Stell dir vor: Du hast monatelang an deinem Projekt gearbeitet, und eines Tages beschließt deine Festplatte zu streiken. Ja, das ist genauso frustrierend wie das Vergessen eines Semikolons am Ende einer SQL-Abfrage, nur tausendmal schlimmer. Systeme können unzuverlässig sein, Menschen machen Fehler und Dateien gehen verloren. Sicherungskopien helfen dir, dich im Voraus auf solche unangenehmen Überraschungen vorzubereiten.

In Linux gibt es einige leistungsstarke Tools für Sicherungskopien. Heute schauen wir uns zwei von ihnen genauer an: rsync und scp.


2. Der Befehl rsync: Ein schnelles und intelligentes Tool zum Kopieren von Daten

rsync ist eines der beliebtesten Tools zum Kopieren und Synchronisieren von Daten. Seine Hauptstärke liegt in der Geschwindigkeit und Effizienz. Anstatt alles zu kopieren, kopiert rsync nur die geänderten Dateien. Das macht ihn ideal für regelmäßige Backups großer Datenmengen.

Die Syntax von rsync

Hier ist das grundlegende Format des Befehls:

rsync [Optionen] Quelle Ziel

Wo:

  • Quelle — der Pfad zur Datei oder zum Ordner, den du kopieren möchtest.
  • Ziel — wohin die Daten übertragen werden sollen.

Wichtige Optionen und deren Funktionen

Hier sind einige häufig verwendete Optionen:

  • -a (archive): Kopiert alle Metadaten (Zugriffsrechte, Zeitstempel usw.).
  • -v (verbose): Gibt detaillierte Ausgaben aus, damit du siehst, was passiert.
  • --progress: Zeigt den Fortschritt des Kopiervorgangs (sehr praktisch bei großen Dateien).
  • --delete: Löscht auf der Zielseite Dateien, die auf der Quellseite nicht mehr existieren. Hilfreich für vollständige Synchronisationen.
  • -z (compress): Komprimiert Daten vor der Übertragung, was den Prozess beschleunigt (besonders wichtig bei Netzwerkanwendungen).

Beispiel: Lokales Kopieren von Daten

Erstelle einen Ordner /backup für Backups.

mkdir /backup

Kopiere den gesamten Inhalt des Ordners /home in /backup:

rsync -av /home /backup

Lass uns dieses Beispiel aufschlüsseln:

  • -a bewahrt die Struktur und Rechte der Dateien.
  • -v liefert Informationen über den Fortschritt des Prozesses.

Wenn du den Befehl erneut ausführst, werden nur geänderte oder neue Dateien kopiert.

Beispiel: Remote-Backup

Angenommen, du möchtest ein Backup auf einen Remote-Server senden. Dafür unterstützt rsync die Verwendung von SSH.

rsync -av /backup user@remote_server:/remote_backup

Wo:

  • user — der Benutzername auf dem Remote-Server.
  • remote_server — die Adresse deines Remote-Servers (z. B. IP-Adresse oder Domainname).
  • /remote_backup — der Pfad auf dem Server, wo die Daten gespeichert werden sollen.

Wenn du einen SSH-Schlüssel zur Authentifizierung hast, wird die Übertragung noch einfacher (und sicherer).


3. Der Befehl scp: einfach und effektiv

scp (Secure Copy Protocol) ist ein Tool zum Kopieren von Dateien zwischen lokalen und entfernten Maschinen. Es ist ein bisschen einfacher als rsync und eignet sich für Fälle, in denen eine vollständige Synchronisation nicht notwendig ist.

Syntax von scp

So sieht das grundlegende Format des Befehls aus:

scp [optionen] quelle ziel

Wo:

  • quelle – der Pfad zur Datei, die du kopieren möchtest.
  • ziel – die Adresse, wohin sie übertragen werden soll.

Wichtige Optionen und ihre Funktionen

Einige nützliche Optionen:

  • -r: rekursives Kopieren für Ordner.
  • -C: komprimiert die Dateien vor der Übertragung.
  • -P: gibt den SSH-Port an, falls dieser vom Standardport (22) abweicht.

Beispiel: Eine Datei auf eine entfernte Maschine kopieren

Du möchtest Dateien von deinem lokalen Computer auf einen Server übertragen. Nehmen wir an, die Datei heißt document.txt.

scp document.txt user@remote_server:/remote_folder

Falls sich die Datei im Ordner /home/user/documents befindet, sieht der Befehl so aus:

scp /home/user/documents/document.txt user@remote_server:/remote_folder

Die Datei wird jetzt auf der entfernten Maschine im Ordner /remote_folder verfügbar sein.

Beispiel: Dateien vom Server auf die lokale Maschine kopieren

Der Prozess funktioniert auch in die entgegengesetzte Richtung:

scp user@remote_server:/remote_folder/document.txt /home/user/documents

Die Datei document.txt wird dann in deinem lokalen Ordner verfügbar sein.


4. Unterschiede zwischen rsync und scp

Obwohl beide Befehle das Kopieren von Dateien ermöglichen, haben sie ihre Besonderheiten.

Besonderheit rsync scp
Geschwindigkeit Nur geänderte Daten, schneller für große Datenmengen Kopiert alles, auch wenn die Datei nicht geändert wurde
Synchronisierung Vollständige Unterstützung der Synchronisierung Unterstützt keine Synchronisierung
Datenkompression Gibt es -z Gibt es -C
Benutzerfreundlichkeit Komplizierter in der Einrichtung Einfache Schnittstelle

Also, wenn du einfach nur schnell eine Datei übertragen willst – benutze scp. Geht es jedoch um regelmäßige Synchronisierungen und große Datenmengen – dann eindeutig rsync.


5. Praktisches Beispiel: Backup-Konfiguration

Hier ist eine praktische Aufgabe: Du möchtest den gesamten Backup-Prozess deines Projekts auf einen entfernten Server einrichten.

  1. Angenommen, deine Projektdateien befinden sich im Ordner /home/user/project. Du möchtest, dass sie auf dem Server backup.server.com im Ordner /backups/project gesichert werden.

  2. Um die Kopiergeschwindigkeit zu erhöhen, verwenden wir rsync.

Backup-Skript einrichten

Erstelle eine Datei namens backup.sh:

#!/bin/bash

SOURCE="/home/user/project"
DESTINATION="user@backup.server.com:/backups/project"

# Backup mit rsync durchführen
rsync -av --delete "$SOURCE" "$DESTINATION"

# Nachricht über Abschluss ausgeben
echo "Backup abgeschlossen!"

Mache die Datei ausführbar:

chmod +x backup.sh

Jetzt kannst du dieses Skript manuell ausführen:

./backup.sh

Oder es zu cron hinzufügen, um es automatisch auszuführen (über cron sprechen wir später im Kurs).


6. Typische Fehler und wie man sie vermeidet

  1. Falsche Pfade in der Kommandozeile. Wenn du einen falschen Pfad zu den Dateien angibst, werden rsync oder scp nichts kopieren. Nutze die Befehle ls oder pwd, um sicherzustellen, dass die Pfade korrekt sind.

  2. Fehlender Autorisierungsschlüssel. Wenn du bei der Verwendung von SSH keinen eingerichteten Schlüssel hast, wirst du ständig nach deinem Passwort gefragt. Richte SSH-Schlüssel ein, um den Prozess zu vereinfachen.

  3. Unterbrechung des Backups. Wenn das Netzwerk instabil ist, wird rsync den Transfer trotzdem bei der nächsten Ausführung abschließen. Aber bei scp musst du von vorne anfangen.

Mit rsync und scp kannst du deine Daten sowohl auf deinem lokalen Computer als auch auf entfernten Servern sicher kopieren und synchronisieren. Diese Tools sind deine verlässlichen Helfer, wenn es darum geht, wichtige Dateien zu schützen.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION