Backups mit (G)Rsync

Rsync - Tipps und Tricks zur Linux-Sychronisation

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.
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.