Die Sicherung des MacBooks auf die TimeCapsule ist eine echte Erleichterung, aber optimal ist es auch noch nicht. Man sollte z.B. nicht das MacBook zuklappen, wenn die Sicherung gerade läuft. Meistens geht das zwar gut, aber ich durfte auch schon 3 mal im vergangenen Jahr das Backup wegschmeissen und ein neues Backup anlegen. Andererseits hat es mich aber auch schon zweimal gerettet. Ein Mac läßt sich komplett Neuinstallieren vom TimeCapsule-Backup aus, und ist danach so restauriert, als wäre nix gewesen.
Ich verwende die TimeCapsule aber nicht nur zum Backup, sondern auch als FileServer für Musik, Videos und Bilder. Damit ist dann aber auch wieder eine Sicherung dieser Daten erforderlich. Ich habe schon einige Varianten durchprobiert. z.B. den Anschluss einer USB-Festplatte direkt an der TimeCapsule und dann die Sicherung über die eingebaute Archivierungsfunktion. Das klappt einmalig auch ganz gut, (dauert leider viele viele Stunden). Aber leider kann man dieses Archiv nicht aktualisieren. D.h. man muss komplett wieder alles sichern, und das geht garnicht. Schliesslich soll die Platte nicht durch das Sichern mehr belastet werden, als durch die Datennutzung. Und man macht das dann auch nicht regelmäßig, weil die TimeCapsule währenddessen nicht genutzt werden kann.
Also schliesse ich die Sicherungs-USB-Platte an das MacBook an und kopiere die Daten mittels rsync. Dazu habe ich mir ein kleines Skript geschrieben, das die zu sichernden Verzeichnisse via rsync abzieht. Das Hauptproblem hierbei war, dass die Sicherung einige Dateien immer und immer wieder kopiert. Ich habe viele der Optionen von rsync durchprobiert, um das zu optimieren, ohne nennenswerte Fortschritte. Checksum-Vergleiche würden funktionieren, aber das dauert wieder endlos.
Warum also glaubt rsync, dass die Dateien sich ändern, obwohl sich nichts geändert hat? Das Schreiben eines Logfiles mit der Option "--log-file=logdateiname" brachte mich auf die richtige Spur. Es wird für jede Datei angegeben, was rsync beim Vergleich ermittelt hat und wie es mit ihr umgeht. In der Manual-Page von rsync findet man unter der Option "-i" bzw. "--itemize-changes" eine Erklärung der Information.
Jedenfalls habe ich so herausgefunden, das sich der Timestamp geändert hat. Mit dem Finder sind die Zeiten aber identisch. Scheinbar werden die Timestamps aber auf der Zielplatte auf volle Sekunden gerundet, so dass im Millisekundenbereich Unterschiede existieren, die aber nicht angezeigt und nicht kopiert werden. Somit haben diese Dateien für rsync immer unterscheidliche Timestamps. Mit der Option "--modify-window=n" kann man rsync anweisen, eine gewisse Unschärfe beim Vergleich zu verwenden. Standard ist n=0. Im Manual steht: "When transferring to FAT filesystems rsync may re-sync unmodified files. See the comments on the --modify-window option." Da die Quellplatte aber die TimeCapsule ist, hatte ich diese Warnung überlesen. Aber scheinbar kann man das Problem von FAT-Formaten auch mitnehmen auf andere Dateisysteme.
Mit "n=1" ist das Problem jedenfalls behoben und ich kann endlich in wenigen Minuten eine Aktualisierung des Backups der TimeCapsule durchführen. Letztendlich nutze ich nun rsync erfolgreich mit den folgenden Parametern:
rsync --progress -a --delete --delete-excluded --ignore-errors --force -S -h --stats --modify-window=1 --log-file=$logdatei.log $quellpfad $zielpfad
Update 15.12.2009:
Seit Snow Leopard muss ich das modify-window auf "2" setzen, damit das Backup reibungslos läuft und nicht immer alles übertragen wird. Ich hab leider noch keine Zeit gehabt, das näher zu untersuchen.