Backups mit (G)Rsync

Rsync - Tipps und Tricks zur Linux-Sychronisation

09.05.2015 von Hermann Apfelböck
Rsync ist der Klassiker unter den Synchronisierungs-Programmen. Die Syntax des Tools hat aber durchaus ihre Tücken.

Wer auf zwei oder drei Datenträgern, etwa auf interner Platte, USB oder NAS ein identisches Datenarchiv bevorraten will, kommt an Rsync nicht vorbei. Nicht ohne Grund ist Rsync auf praktisch jeder Linux-Distribution Standard. Im Unterschied zu Sicherungswerkzeugen wie Dejadup oder Tar sind alle Daten an jedem Ort einzeln und uneingeschränkt benutzbar. Außerdem besticht Rsync durch Schnelligkeit, Vielseitigkeit und Optionen für jeden Spezialfall. Die Syntax des Kommandozeilen-Tools hat aber durchaus ihre Tücken.

Sicherung von und auf USB-Festplatte

Wie rsync -help zeigt, gibt es reichlich Schalter zur Steuerung einer Datensynchronisation. Erfreulicherweise fasst die Sammeloption „-a“ eine Reihe häufig benötigter Funktionen zusammen. Damit erreichen Sie rekursives Kopieren inklusive aller Unterverzeichnisse und das Bewahren der Dateirechte und Dateiattribute. Hängen Sie bei jeder Schalterkombination immer auch noch ein „v“ an („verbose“), um das Tool möglichst gesprächig zu machen:

rsync -av /home/sepp/ /media/user/USB-Data/backup

Das Beispiel geht davon aus, dass sich ein automatisch gemountetes USB-Laufwerk mit dem Label „USB-Data“ unter „/media/user“ eingehängt ist. Dieses steht an zweiter Stelle und ist das Ziellaufwerk der Sicherung. Das angegebene Verzeichnis („backup“) wird automatisch erstellt, sofern es bei einer Erstsicherung noch nicht existiert.

Das erste nach den Schaltern angegebene Verzeichnis ist stets der Quellordner. Beachten Sie hier den abschließenden Slash (/). Es ist eine häufige Fehlerquelle bei Rsync, dass Unsicherheit über die richtige Verzeichnisebene besteht: Im obigen Beispiel landen alle Ordner und Daten unterhalb „/home/ sepp“ im Zielordner „../backup“. Ohne Slash

rsync -av /home/sepp /media/user/USB-Data/backup

würden die Daten hingegen im Ziel „../backup/sepp“ abgelegt, also mit einer zusätzlichen Verzeichnisebene. Das wäre an sich kein Problem, wird aber zum erheblichen Problem, wenn Sie die falsche Syntax auf eine bereits bestehende Sicherung anwenden.

Von den zahlreichen weiteren Schaltern sind mindestens zwei unentbehrlich: Mit dem Befehl

rsync -av --delete /home/sepp /media/user/USB-Data/backup

erzeugen Sie bei periodischer Sicherung eine Mirror-Kopie auf dem Zieldatenträger. Was unter der Quelle „/home/sepp“ seit dem letzten Kopiervorgang gelöscht wurde, wird auch auf dem Ziel gelöscht. Das ist nützlich, aber bei falschen Pfadangaben fatal. Daher sollte hier und auch sonst bei bisher unerprobten Sicherungsaufträgen immer ein Testlauf vorausgehen:

rsync -av --delete --dry-run /home/sepp /media/user/USB-Data/backup

Rsync-Sicherung auf einen entfernten Rechner: Das Programm nutzt automatisch eine SSH-Verbindung, wenn es auf eine Server-Notation trifft, und fragt dann nach dem User-Kennwort. Das grafische Front-End Grsync verhält sich entsprechend.

„--dry-run“ oder kurz „-n“ zeigt alle zu erwartenden Aktionen, ohne sie tatsächlich auszuführen. Für periodische Sicherungen zeitsparend ist ferner Schalter „u“, also insgesamt „rsync-auv ...“. Der Update-Schalter spart Zeit, indem er bereits bestehende Dateien überspringt.

Rsync ist prädestiniert für die Vollsicherung und Bestandsaktualisierung. Die Auswahl bestimmter Dateitypen gerät mit dem Kommando

rsync -av --include "*/" --include "*.pdf" --exclude "*" /home/sepp/media/user/USB-Data/backup

alles andere als intuitiv.

Sicherung von und auf Netzwerkfreigaben

Rsync akzeptiert als Quellen- und Ziel-Pfade der Sicherung ebenso gut freigegebene Samba- oder Windows-Netzwerkordner. Allerdings muss die Netzwerkressource vorher mit dem Befehl „mount“ in das Dateisystem geladen werden:

sudo mount -t cifs -o username=sepp,password=xyz//192.168.0.200/volume_1 /mnt/nase

Danach funktioniert der Abgleich im Mountpunkt:

rsync -av /mnt/nase/Archiv /home/sepp

In diesem Beispiel wird ein Laufwerk des Netzwerk-Servers „nase“ mit der IP 192.168.0.200 unter „/mnt/nase“ eingebunden und dann dessen Ordner „Archiv“ mit dem lokalen Home-Verzeichnis abgeglichen. Der Quellordner hat keinen schließenden Slash, das heißt: Der Abgleich findet unter „/home/sepp/archiv“ statt.

Sicherung von und auf Server

Rsync kann von jedem Rechner im LAN oder Web Daten beziehen oder dorthin kopieren, wo Open SSH läuft und Benutzerkonto und Passwort bekannt sind. Netzwerkfreigaben sind dabei nicht nötig. Der Open-SSH-Server ist bei lokalen Rechnern mit

sudo apt-get install openssh-server

bei Bedarf schnell installiert. Geben Sie danach zum Test auf dem Server-Rechner auf der Kommandozeile ssh user@IP ein, wobei Sie „User“ durch Ihren Log-in-Namen und „Host“ durch die IP-Adresse ersetzen. Beim ersten Aufruf müssen Sie die Verbindung mit „yes“ bestätigen. Mit Rsync erfolgt dann der Zugriff auf einen Server-Ordner nach diesem Schema:

[user]@[IP]:/[Verzeichnis]/

Ein kompletter Beispielaufruf sieht dann wie folgt aus:

rsync -av -e ssh ha@192.168.0.66:/home/ha/Bilder/ /home/ha/Pics

Rsync erkennt anhand der Server-Notation übrigens automatisch den Bedarf von „ssh“. Der Aufruf gelingt daher auch, wenn man „-e ssh“ einfach weglässt.

Das grafische Front-End Grsync

Grsync ist eine einfache grafische Oberfläche, die lediglich die angeklickten Einstellungen als Parameter an Rsync weitergibt – ein typisches Front-End zur bequemeren Bedienung. Um die Oberfläche übersichtlich zu halten, musste Grsync auf viele Optionen des Kommandozeilen-Tools verzichten. Wir empfehlen es für einfache Daten-Backups, wo die wichtigsten Optionen ausreichen. Wer auf die volle Kontrolle und auf raffiniertere Rsync-Parameter Wert legt, ist mit dem puren Rsync besser bedient. Unter Ubuntu oder Linux Mint ist Grsync mit

sudo apt-get install grsync

auf der Kommandozeile oder wahlweise im Software-Center schnell installiert. Für eine Datensynchronisierung reicht meistens die beim Start angezeigte Registerkarte „Standard-Optionen“. Die wichtigsten Eingabefelder sind Quelle und Ziel, wobei dieselben Regeln gelten wie für die Rsync-Kommandozeile: Alle im Dateisystem eingehängten Medien sind möglich, ferner auch der Server-Zugriff mit SSH und der Syntax „User@IP:/Verzeichnis“. Wenn Sie diese Syntax verwenden, greift Grsync automatisch zu SSH. Die Angabe von „ssh“ ist weder vorgesehen noch notwendig.

Die Optionen wie „Bestehende ignorieren“ oder „Neuere überspringen“ zeigen beim Mouse-over eine präzisere Erklärung. So verzichtet etwa „Bestehende ignorieren“ auf das Kopieren einer Datei, sofern von dieser im Ziel bereits eine ältere Version vorliegt. Eine 1:1-Mirror-Synchronisierung erreichen Sie, wenn Sie die oberen vier Optionen aktivieren sowie „Im Zielverzeichnis löschen“. Letzteres übergibt die im Haupttext erklärte Option „--delete“ an Rsync.

Die Gefahr von Benutzerfehlern ist beim Klick in grafische Oberflächen immer höher als beim gezielten Einsatz von Parametern. Es empfiehlt sich immer, ganz besonders aber beim Einsatz der Löschoption, ein Simulationslauf (Rsync-Parameter „-n“ oder „--dry-run“). Dies erledigt Grsync sehr komfortabel mit „Datei -> Simulation“ oder Tastenkombination Alt-S. Die eigentliche Aktion startet mit „Datei -> Ausführen“ (oder der Schaltfläche ganz rechts). Für eine erfolgreiche Sicherungsaktion, die Sie öfter benötigen, legen Sie unter „Sitzungen -> Hinzufügen“ ein eigenes Set an, das Sie dann jederzeit erneut abrufen können. Ohne eigene „Sitzungen“ existiert zunächst nur ein „default“.

(PC-Welt/ad)