Zum Inhalt springen

rsync

Backup-Tipp: GRsync für Windows

Bildschirmfoto 2014-01-28 um 09.55.35Nachdem ich nun schon seit (wirklich) Jahren meine Daten am Mac mit rsync (ja, mit dem Kommandozeilentool) sichere und dies bislang absolut tadellos funktioniert, dachte ich mir, dass wäre auch eine schöne Lösung für einen Windows-Rechner.
Am Anfang verwendete ich auf dem Mac Arrsync, die grafische Oberfläche für rsync. Ab irgendeiner Mac-OSX-Version lief diese App aber leider nicht mehr und ich (musste) auf das zugrundeliegende Terminal-Programm rsync zurückgreifen. Der Umstieg war zwar nicht ganz einfach, aber ich hab jetzt einen für mich passenden Befehl zusammen gebaut und verwende diese nun schon seit einiger Zeit.

Aber bei dem Windows-PC musste die Bedienung auch für einen Laien machbar sein und so war ich ganz glücklich, als ich eine GUI-Variante names „Grsync“ gefunden hatte.

Ich hab das grsync-Programm auf meinem Windows8-Test-PC ausprobiert und die Anwendung ist sehr intuitiv. Ok, das Programm ist auf englisch, ist aber nicht so das große Problem.

Als Tipp möchte ich noch hinzufügen, dass ich immer die Option „delete on destination“ aktiviere. Die bewirkt, dass Daten, die auf dem Quell-Medium gelöscht wurden, auch auf dem Ziel-Medium gelöscht werden. Wer das nicht möchte, sollte den Haken nicht setzen. 😉

rsync löst arrsync ab

Wollte heute mal wieder ein Backup meiner Fotos, die auf einem kleinen NAS liegen, machen. Bislang verwendete ich für diesen Zweck die Mac-App „arrsync“, was auch die letzten Jahre wunderbar funktioniert hat. Doch heute musste ich feststellen, dass das Backup mit arrsync auf eine ext. USB HD nicht mehr klappen wollte. Grund relativ unbekannt, da das LOG-File auch nicht wirklich auskunftsfreudig war. Drum hab ich mal geschaut, ob es vielleicht ein Update fürs arrsync unter Lion gibt, aber ich musste feststellen, dass ich die aktuellste Version im Einsatz hatte. Alternativen habe ich auch keine wirklich guten gefunden. Ok, ich hab auch nicht wirklich lange gesucht 😉

Mir ist dann eingefallen, dass es ja auch noch den Terminal-Befehl rsync gibt und ich wollte mal testen, ob ich ein Backup nicht auch damit zustande bringen würde. Und ich musste feststellen, dass das einfacher ging, als erst erwartet. Hat man doch immer so eine gewisse Abneigung gegen Kommandozeilenbefehle, wenn es auch eine GUI-App dafür gibt. 😉
Also kurz in die MAN-Page des Befehls geschaut und ein paar Optionen rausgesucht und los gings mit testen. Vielleicht noch mal kurz, was ich machen wollte. Auf einem NAS mit der Freigabe „Fotos“ liegen meine Bilder, die ich auf eine ext. Festplatte namens „LACIE“ sichern wollte. Den Befehl, den ich dafür nun verwende, schaut so aus:

rsync -rvz /Volumes/Fotos/ /Volumes/LACIE/

Ich weiß nicht, ob dies der Weisheit letzter Schluss ist, aber so wie es gerade aussieht (Backup läuft noch), mach der Befehl, dass was ich will. 😉

Sollte jemand noch Tipps für mich haben, dann immer her damit.

Ach ja, was ich noch erwähnen wollte, waren die Befehls-Optionen, die ich eingebaut habe:

  • „r“ für rekursiv, also alle Unterverzeichnisse mitnehmen
  • „v“ für verbose, damit man sieht, was gerade gemacht wird
  • „z“ für Komprimierung während des Datentransfers

Hat das erste Buckup funktioniert, dann könnte man bei den folgenden Datensicherungsläufen noch die Option „u“ (=Update) hinzufügen. Damit wird vergleichen, ob am „Ziel“ bereits die Datei vorhanden ist und diese wird nicht kopiert, wenn sie ein neueres Datum als die Quell-Datei hat.  Sollten die Ziel- und die Quell-Datei das gleiche Änderungs-Datum haben, dann wird die Datei nicht kopiert, es sei denn, die Dateigröße ist unterschiedlich.

  • „u“ für Update bzw. schauen, ob die Datei schon vorhanden ist

Wenn dies alles berücksichtigt wird, dann sollte der zu verwendende Befehl wie folgt aussehen:

rsync -rvuz /Volumes/Fotos/ /Volumes/LACIE/

Nachtrag vom 6. Mai 2012:
So gut und schön der obige Befehl ist und so gut er auch funktioniert, habe ich im Laufe der Zeit bemerkt, dass er einen Schwachpunkt hat. Ich versuche diesen mal zu beschreiben:

Nehmen wir an, wir haben auf der Quell-Festplatte zwei Ordner. Ordner A + B. Kopiert man nun in Ordner A Daten und macht anschliessend mit rsync eine Sicherung, dann befinden sich auch auf der Zielfestplatte diese Daten in Ordner A. So weit, so gut.
Kopiert man jetzt jedoch die Daten von Ordner A auf der Quellfestplatte in den Ordner B der Quelle und macht dann anschliessend eine Sicherungen, dann sind die Daten auf der Sicherungsplatte sowohl in Ordner A, also auch B vorhanden.
Hat man nun auf der Quell-Festplatte erhebliche Dateibewegungen, so sammeln sich auf der Backup-HD doch sehr große Datenmengen an und die Festplatte läuft allmählich voll.
Dafür gibt es jedoch eine sehr einfache Lösung, die man findet, wenn man sich die man-Pages noch etwas genauer anschaut. Es gibt eine Option, die sich „–delete“ nennt. Diese bewirkt, dass Daten, die auf der Quell-Festplatte gelöscht (oder verschoben) werden, auch auf der Ziel-Festplatte gelöscht werden. 😉
Somit müsste das Befehl dann wie folgt aussehen:

sudo rsync -rvuz --delete /Volumes/Fotos/ /Volumes/Sicherung/

Das „sudo“ musste ich nun komischerweise hinzufügen, weil mit beim ersten Versuch eine Meldung erschien, dass ich nicht die Rechte hätte alle Dateien zu löschen. Mit dem „sudo“ gings dann.

Noch ein Hinweis (2. Dez.2012):
Beim ersten Teil der Optionen (rvuz) braucht man nur EINEN Bindestrich. Bei der delete-Option benötigt man 2 Bindestriche.

…und wieder einige Wochen später wird man wieder etwas schlauer. Nachdem ich nun ein Voll-Backup meiner Daten machen wollte und die Sicherung mit rsync an einer bestimmten Stelle sehr lange „hing“, hab ich diese abgebrochen und erneut gestartet. Das gleiche Verhalten wieder…seltsam. Wäre es nicht schön, wenn man eine Fortschrittanzeige fürs rsync hätte? Und siehe da, es gibt sowas. Und zwar mit dem Parameter „progress“. Der vollständige Befehl müsste somit dann so aussehen:

sudo rsync -rvuz --delete --progress /Volumes/QUELLE/ /Volumes/ZIEL/
sudo rsync -rvuz --delete --progress /Volumes/Fotos/ /Volumes/Sicherung/