8.2. Rsync Backup: Backup übers Netzwerk

Keywords: backup | rsync

8.2.1

Ein Backup der Daten lässt sich bequem per rsync erledigen. rsync ist ein Werkzeug zum Abgleichen von Dateien zwischen verschiedenen Rechnern. Der Vorteil von rsync besteht in dem inkrementellen Abgleich, sodass im Wesentlichen nur die Änderungen zwischen zwei Datei-Versionen übertragen werden müssen. rsync ist dabei allerdings nicht mit einem Versions-Management wie CVS zu verwechseln, d. h. es werden keine Repositories gepflegt und auch keine Änderungen protokolliert. Binärdateien sind für rsync kein Problem, da es Dateien nicht zeilenweise vergleicht, sondern Prüfsummen verwendet.

Natürlich muss rsync auch installiert sein, was bei der Standardinstallation von SuSE nicht der Fall ist.

Das eigentliche Datenbackup geschieht über die Konsole mit dem Befehl:

rsync -azv --delete-after -e ssh /home/user/Daten/ \
backuprechner:/data/Daten/

Hierbei wird das Verzeichnis /home/user/Daten auf dem Zielrechner im Verzeichnis /data/Daten gesichert. Sinnvollerweise erstellt man auf dem Zielhost einen User gleichen Namens, wie auf dem Quellrechner; wenn nicht muss man den Usernamen voranstellen. Wenn beispielsweise User X auf dem Quellhost als User Y am Zielhost sichern will, lautet der Befehl:

rsync -azv --delete-after -e ssh /home/user/Daten/ \
Y@backuprechner:/Daten/

Natürlich müssen alle User Schreibrechte im Verzeichnis /data auf dem Zielhost haben.

Bedeutung der einzelnen übergebenen Parameter:

  • -a = --archive: Es wird rekursiv kopiert, Timestamp, Benutzer- und Gruppenrechte bleiben erhalten.
  • -z = --compress: Komprimiert die Datenmenge und das Backup läuft bei ausreichender CPU-Leistung schneller - geeignet für langsame Netzwerkleitungen (Modem, ISDN).
  • -v = --verbose: Zeigt an, welche Dateien gesichert werden.
  • --delete-after: Löscht Dateien am Zielhost, wenn sie am Quellhost gelöscht werden. Aktiviert man diese Option nicht, so bleiben alle Dateien am Zielhost immer erhalten, selbst wenn sie am Quellhost nicht mehr vorhanden sind.
  • -e ssh: Benutzt ssh als sichere Verbindung zum Zielhost.

Allerdings wird bei dieser Methode die Eingabe des Passwortes per ssh auf dem Zielhost erwartet. Um dies zu umgehen, kann man SSH-Keys verwenden (siehe Wie geht SSH ohne Passwort?).

Um nicht jedesmal für jedes Verzeichnis einen Befehl in der Konsole eingeben zu müssen, speichert man einfach alle auszuführenden Befehle in einem Script ab und macht dieses ausführbar. Dann muss man nur noch dieses Script aufrufen. Alternativ kann man dieses Script regelmäßig als cron-job laufen lassen und bekommt dann sogar eine Mail lokal zugestellt, in der man überprüfen kann, ob das Backup erfolgreich war.

Weitere Informationen finden sich in der Manpage.

man rsync
(schott)