Daten mit rsync unter Linux synchronisieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Das Programm rsync[1] ermöglicht unter Linux die unidirektionale Daten-Synchronisation von einem Quell- zu einem Zielverzeichnis. Diese beiden Verzeichnisse können dabei auf unterschiedlichen Rechnern liegen (die Änderungen werden dann über das Netzwerk übertragen).

Beispiel: Datensynchronisation für Backup-Zwecke

Häufig wird rsync für Backup-Zwecke verwendet. Mit dem folgenden Beispiel-Kommando wird das Verzeichnis /home/ des Servers server.example.com hin zum lokalen Rechner in das Verzeichnis /mnt/server-mirror/home/ synchronisiert. Die Daten werden dabei über SSH getunnelt übertragen:

rsync -av --delete -e ssh root@server.example.com:/home/ /mnt/server-mirror/home/

Wenn rsync automatisert in einem Skript verwendet werden soll, kann die Authentifizierung etwa über einen SSH Key durchgeführt werden:

rsync -av --delete -e "ssh -i /home/user/.ssh/sshkey" root@server.example.com:/home/ /mnt/server-mirror/home/

Die gezeigten rsync Optionen haben folgende Bedeutung:

  • -a (Kurzversion für --archive): gleiche Bedeutung wie -rlptgoD
    • -r (Kurzversion für --recursive): Unterverzeichnisse kopieren
    • -l (Kurzversion für --links): symbolische Links kopieren
    • -p (Kurzversion für --perms): Rechte der Quelldatei beibehalten
    • -t (Kurzversion für --times): Zeiten der Quelldatei beibehalten
    • -g (Kurzversion für --group): Gruppenrechte der Quelldatei beibehalten
    • -o (Kurzversion für --owner): Besitzrechte der Quelldatei beibehalten (nur als root User möglich)
    • -D (Kurzversion für --devices --specials): Gerätedateien der Quelldatei beibehalten (nur als root User möglich)
  • -v (Kurzversion für --verbose): zeigt während der Ausführung an welche Dateien synchronisiert werden
  • --delete: entfernt Dateien im Zielverzeichnis die mittelerweile im Quellverzeichnis nicht mehr vorhanden sind

Backupversionen mit rdiff-backup erstellen

Das oben gezeigte Kommando synchronisiert die Daten zwar vom Quell- zum Zielverzeichnis. Wird allerdings z.B. irrtümlich eine Datei gelöscht und anschließend rsync ausgeführt, ist die gelöschte Datei auch im Zielverzeichnis nicht mehr vorhanden. Hier ergänzt das Backup-Tool rdiff-backup rsync optimal.

Referenzen

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

DRBD Kernel Modul mit DKMS automatisch erstellen
OpenVPN Grundlagen
Wake on LAN unter Linux