IT Works AG

Rufen Sie uns an:

Backup und mehr mit Rsync

Rsync, das für „remote sync“ (entfernte Synchronisierung) steht, ist ein Tool zum Abgleich von lokalen und entfernten Dateien. Es verwendet einen Algorithmus, der die Menge der kopierten Daten minimiert, indem es nur die Abschnitte von Dateien überträgt, die Änderungen aufweisen. Rsync ist sowohl ein Netzwerkprotokoll als auch ein unter der GPL (General Public License) stehendes Programm auf praktisch jeder Linux-Distribution.

Typische Anwendungsgebiete von Rsync sind Datensicherung, etwa im Backup-Programm Rsnapshot, der Abgleich von Spiegelservern (mirror), oder ganz einfach Dateien auf einen anderen Server kopieren. Auch für einen Datenabgleich zu Firmenaußenstellen mit langsamer Netzwerkanbindung eignet sich Rsync bestens.

Sicherung von und auf USB-Festplatte

Wie „rsync –help“ zeigt, gibt es reichlich Schalter, um eine Datenübertragung zu steuern. Die Sammeloption „-a“ (archive) vereint eine Reihe häufig benötigter einzelner Optionen. Sie schaltet rekursives Kopieren inklusive aller Unterverzeichnisse ein und bewahrt Dateirechte und Dateiattribute. Mit einem zusätzlichen „-v“ (verbose) wird das Tool viel gesprächiger:

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

In diesem Beispiel ist ein gemountetes USB-Laufwerk mit dem Label „USB-Data“ unter „/media/user“ eingehängt. Das angegebene Verzeichnis „backup“ wird automatisch erstellt, falls es bei einer Erstsicherung noch nicht existiert. Das erste nach den Schaltern angegebene Verzeichnis ist immer der Quellordner, hier also „/home/DATA“.

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

mount -t cifs -o username=XY,password=ABC//192.168.0.200/volume_1 /mnt/nas

Die Option „-t“ ist hier fstype (Filesystemtyp). Danach funktioniert der Abgleich im Mountpunkt:

rsync -av /mnt/nas/Archiv /home/DATA

In diesem Beispiel wird ein Laufwerk des Netzwerk-Servers „nas“ mit der IP 192.168.0.200 unter „/mnt/nas“ eingebunden und dann dessen Ordner „Archiv“ in das lokale Home-Verzeichnis kopiert. Der Quellordner hat keinen abschließenden Slash, das heißt: Der Abgleich findet unter „/home/DATA/Archiv“ statt.

Wenn das Quellverzeichnis einen abschließenden Slash „/“ enthält, kopiert Rsync nur den Inhalt des Quellverzeichnisses in das Zielverzeichnis. Ohne den abschließenden Slash wird auch das Quellverzeichnis selbst im Zielverzeichnis angelegt, inklusive aller enthaltenen Ordner und Dateien.

SSH sorgt für sichere Transfers

Die Übertragung zu sichernder Dateien über das Netz auf einen zweiten Rechner übernimmt das Programm Rsync in Zusammenarbeit mit SSH. Früher kam hier noch die „rsh“ (Remote-Shell) zum Einsatz. Mittlerweile ist jedoch SSH (Secure-Shell) für den Job besser geeignet, da sie die Daten auf ihrem Weg verschlüsselt. Die Werkzeuge bringen für Admins gleich zwei Vorteile: Sie sparen erstens Bandbreite, da Rsync auf Wunsch Daten komprimiert, und zweitens gewährleistet SSH, dass die Daten durch die Verschlüsselung nicht von Dritten abgefangen werden können.

Außerdem beherrscht SSH verschiedene sichere Authentifizierungsvarianten. Neben der traditionellen Anmeldung mit Username und Passwort kann es mit kryptographischen Schlüsseln arbeiten, wodurch sich eine Passworteingabe erübrigt. Bei vielen Kopieraktionen hintereinander ist das ein enormer Vorteil.

Nur die Änderungen

Im Fall eines automatischen Backups findet Rsync alle Daten, die sich seit dem letzten Lauf geändert haben. Dazu vergleicht Rsync entweder eine Kombination aus Dateigröße und Zeitstempel oder die MD5-Prüfsumme jeder einzelnen Datei. Als besonderes Bonbon benutzt Rsync bei großen Dateien einen raffinierten Mechanismus, der nicht die ganze Datei kopiert, sondern nur die geänderten Teile.

Zum Beispiel kann man damit eine einzelne große Datei „/opt/Datei.zip“ vom lokalen System zum „/var/www/“-Verzeichnis auf dem Remote-System mit IP 192.168.0.200 übertragen:

rsync -a /opt/Datei.zip Benutzer@192.168.0.200:/var/www/

Um Dateien, die es im Quellverzeichnis nicht (mehr) gibt, auch im Zielverzeichnis zu entfernen, kann man die Option „–delete“ verwenden. Dann sind nach dem Lauf Quell- und Zielverzeichnis identisch. Ohne diese Option bleiben Files im Zielordner erhalten, falls sie an der Quelle nicht existieren.

rsync -av –delete /opt/Datei.zip Benutzer@192.168.0.200:/var/www/

Um neben den einfachen Unix-Zugriffsrechten auch die Acces Control Lists (ACLs) und die erweiterten Attribute (Extended Attributes, EA) abzugleichen, braucht Rsync zwei zusätzliche Optionen. So lange man weder ACLs noch EAs verwendet, sollte man sie auch nicht abgleichen, da Rsync hierzu deutlich länger braucht als nur zum Abgleich der normalen Zugriffsrechte. Wenn doch, verwendet man:

rsync -av -AX –delete /opt/Datei.zip Benutzer@192.168.0.200:/var/www/

Neben den genannten Optionen hat Rsync noch dutzende weitere Parameter. So kann man gezielt einzelne Dateien von der Kopier-Aktion ausschließen, Symlinks speziell behandeln oder Aufrufoptionen an SSH weiterreichen. Die Manpage verrät alle Details: man rsync

Die richtige Richung

Trotz seines Namens ist Rsync kein Synchronisierungswerkzeug: es überträgt die Daten immer nur in eine Richtung kopiert, nicht in beide Richtungen. Das macht es aber sehr ausgeklügelt. Rysync eignet sich für einfache Copy-Jobs, aufwändigere Backups zwischen Servern und komplexe Mirroring-Aufgaben. In vielerlei Hinsicht wird Rsync auf diesen Gebieten die beste Wahl für Administratoren sein, einmal aufgesetzt, arbeitet es zuverlässig und stabil.

Nach oben scrollen