Linux
Kommandozeile
RSYNC – das praktische Tool für lokale und entfernte Backups
Aktualisiert: 30. 10. 2007
Einleitung
Ein grosses Thema ist immer wieder die Datensicherheit. Natürlich werden bei einem Provider Internetdaten gesichert, doch wie sieht es mit regelmässigen Backups der persönlichen Daten auf dem eigenen Computer aus? Eine grosse Hemmschwelle ist die Vorstellung, dass man teuere Backuplösungen kaufen oder sich tiefergehend mit Begiffen wie «Redundanz», «Inkrementelles Backup», «Partielles Backup» etc. herumschlagen muss, bevor man überhaupt in der Lage ist, ein halbwegs professionelles Backup machen kann. Wie immer ist dies unter Linux nicht nötig, denn man kann auch hier mit einem einzigen Befehl ein vollständiges Backup seiner Daten generieren, z. B. auf eine externe USB-Festplatte, einen USB-Stick oder aber auch über das Netzwerk auf einen entfernten Computer.
Testlauf
Mit dem ersten Befehl wir ein Testlauf durchgeführt, der die Dateien im Quellverzeichnis /var/www/ mit denjenigen im Zielverzeichnis /media/disk/www vergleicht, alle Operationen kommentiert (-v oder --verbose), jedoch keine Änderungen vornimmt (-n oder --dry-run). Die Option -a (oder --archive) ist eigentlich mit den Optionen -rlptgoD identisch und sorgt dafür, dass die Ordner rekursiv (-r oder --recursive) durchforstet und auch Links mitkopiert (- oder --links) werden, Zeitstempel (-t oder --time) und Benutzerrechte (-p oder --permissions, g oder --groups, -o oder --owner) der Ordner und Dateien jedoch unberührt bleiben.
rsync -anv /var/www/ /media/disk/www/
Lokales Update auf externe Festplatte
Nachdem man sich das Ergebnis des ersten Befehls angesehen hat und man sicher ist, dass man das Quellverzeichnis mit dem Zielverzeichnis synchronisieren möchte, kann man den zweiten Befehl aufrufen. Aber Vorsicht! Der zweite Befehl aktualisiert nicht nur alte Dateien (-u oder --update) im Zielverzeichnis, sondern löscht dort auch alles, was im Quellverzeichnis nicht vorhanden ist. Bevor man den zweiten Befehl aufruft, sollte man also hundertprozentig sicher sein, dass im Zielverzeichnis nicht noch wichtigen Dateien liegen. Ist man unsicher, dann empfiehlt es sich, den zweiten Befehl zuerst mit der Option -n (oder --dry-run) abzufeuern.
rsync -auv --delete /var/www/ /media/disk/www/
Kleinere Probleme mit FAT-Musicplayern und Zugriffsrechten
Die ersten beiden Beispiele funktionieren nur, wenn auf Ihrer am USB-Port angeschlossenen Backup-Festplatte das ext-Filesystem vorhanden ist. Wollen Sie jedoch einen Musicplayer mittels rsync aktualisieren, dann haben Sie das Problem, dass auf diesen Geräten noch immer das alte FAT-Dateisystem (u. a. auch bei Apples iPod für Windows) vorhanden ist, welches keinerlei komplexe Benutzerrechte zu speichern vermag. Ubuntu mountet das Gerät daher kurzerhand zwar mit den eigenen Besitzrechten, jedoch als der Gruppe «root» zugehörig und mit umask=077. Es ist hier also nicht mehr möglich, die in den ersten beiden Beispielen aktivierte Option -a (--archive) zur Aktualisierung der Rechte zu verwenden; einzig -r kann bleiben, um rekursives Kopieren aller Unterordner zu ermöglichen.
rsync -ruv --delete ~/musikbox/ /media/H300/
Entferntes Update über das Internet
Es ist natürlich auch möglich, rsync für die Fernwartung über das Internet zu benutzten; bei der Synchronisierung sensibler Daten sollte man aber unbedingt auf die Verschlüsselung mittels SSH zurückgreifen. Der letzte Befehl geht kopiert rekursiv den Inhalt des Ordners musik im home-Verzeichnis desjenigen Users, mit dessen «benutzername» man sich auf dem Computer «ip-adresse» angemeldet hat, in dasjenige Verzeichnis auf dem eigenen Computer, aus dem heraus man die SSH-Verbindung gestartet hat (Punkt beachten!). Zusätzlich werden die heruntergeladenen Teile für eine allfällige Wiederaufnahme zwischengespeichert (--partial) und für jede Datei eine Prozentangabe (--progress) angezeigt. Letztere Option ist bei lokaler Synchronisation übrigens nicht nötig, da die Dateien sowieso fürs menschliche Auge zu schnell kopiert werden.
rsync -r --partial --progress --rsh=ssh benutzername@ip-adresse:musik/ .

