Da ich aktuell meine Server-Cluster mit den Replikations-Datenbanken bestücke, schaufel ich gigabyteweise Daten durch das Netz. Die Dateien sind gepackt bzw. gezippt größer als zwei Gigabyte, also ein nennenswerter Brocken, bei einer normalen DSL-Leitung, deren magerer Upstream an alte ISDN-Zeiten erinnert. Umso ärgerlicher, wenn der Upload der Datei abbricht, denn wie es das Schicksal will, bricht der Upload nicht nach wenigen Minuten, sondern kurz vor Schluss, nach Stunden, bei 97, 98 oder 99 Prozent ab. Es ist nicht leicht, hier ruhig vor der Konsole sitzen zu bleiben.
Bisher habe ich das Replikationsverzeichnis gezippt und dann per SCP (LINK) zum Zielserver geschickt. Leider gibt es keine Möglichkeit, einen abgebrochenen Upload per SCP wieder aufzunehmen. Abhilfe schafft der Befehl rsync. Mit diesem Befehl kann man den abgebrochenen Upload einer Datei „reparieren“. Der Syntax des Befehls lautet wie folgt:
rsync -e ssh –partial –progress quelle [benutzer@]zielrechner:zielverzeichnis/
RSync: Daten und Datenverzeichnisse unter Linux synchronisieren
RSync ist eigentlich dafür gedacht, Daten und ganze Datenverzeichnisse über ein Netzwerk zu synchronisieren. RSync prüft hierzu die Unterschiede zwischen dem Quell- und dem Zielrechner und überträgt nur die Änderungen. Dadurch, dass Rsync auch einzelne Dateien in Teilen ersetzen kann, eignet sich das Programm auch zur Wiederaufnahme abgebrochener Transfers.
Was bedeuten die Parameter von rsync?
-e ssh: Diesen Parameter sollte man aus Sicherheitsgründen beim Transfer über das Internet immer verwenden, da so eine Verschlüsselung der übertragenen Daten erreicht wird.
partial: Der Parameter „partial“ verhindert bei einem Abbruch, dass Rsync die bereits übertragenen Daten nicht einfach löscht.
Progress: Dieser Parameter ermöglicht es, den Fortschritt des Downloads zu überwachen. Für eine ausführliche Darstellung der Synchronisation kann der Parameter „-v“ hinzugezogen werden.
-P: Die Parameter Partial und Progress können mit dem Parameter „P“ zusammengefasst werden.
Komprimierung einschalten
Wenn man nicht gerade eine zip-Datei überträgt, bietet sich eine Komprimierung der übertragenen Daten an. Hierfür eignet sich der Parameter „-z“.
Eine detaillierte Beschreibung der Parameter von Rsync kann auf der Ubuntu-Seite nachgelesen werden.
rsync -Pvze ssh /home/benutzer benutzer@example.com:/backups
Trockentest: Übertragung von Daten nur Testen
Da rsync je nach Konfiguration auch Daten löschen kann, ist ein Datenverlust bei falscher Parameterübergabe nicht ausgeschlossen. Hier bietet es sich an, zuerst einen Test („dry run“) durchzuführen um zu schauen, ob die Parameter richtig gesetzt sind. Eine Simulation kann mit dem Parameter „-n“ gestartet werden.