Interessen und Interessantes

rsync-Backup der c’t unter Windows Vista

In der c’t 21/2006, Seite 106, schrieb Karsten Violka einen interessanten Artikel zu einer von ihm entwickelten Backup-Lösung für Windows. Das Backup hat die Besonderheit, dass es NTFS-Hardlinks benutzt um inkrementelle Backups jeweils zu einem vollständigen Verzeichnisbaum werden lassen: man sieht also immer den aktuellen Stand wie bei einem Vollbackup, gesichert werden aber immer nur die Veränderungen. Das spart viel Platz bei gewohnter Übersichtlichkeit. Das Backup selbst ist in einem Visual Basic-Skript realisiert und nutzt das aus der Unix-Welt bekannte rsync.

Zum Herunterladen findet es sich im Heise-Software-Verzeichnis und heißt rsyncBackup.vbs.

Im Allgemeinen tut es ohne Probleme seinen Dienst — zumindest unter Windows XP. Als ich es nun unter Windows Vista einsetzen wollte, gab es doch noch einige Hindernisse. Zum Einen hagelte es Fehlermeldungen wegen mangelnder Rechte und zum Anderen tauchten plötzlich mir völlig unbekannte Verzeichnisse auf.

Ich setze es ein, um ganze Homeverzeichnisse (Benutzer-Verzeichnisse) zu sichern (also z. B. C:\Users\Valentin). Als ich das nun unter Windows Vista machen wollte, scheiterte das Skript an irgendwelchen fehlenden Rechten, vielleicht durch das UAC. Nach etwas googlen las ich den Tipp, eine aktueller Version von rsync zu nutzen. Und das half auch! Ich installierte rsync aus der Distribution cwrsync. Darin enthalten sind auch die Bibliotheken von Cygwin (POSIX für Windows), die nötig sind um rsync unter Windows laufen zu lassen. Also habe ich die Dateien rsync.exe, cygwin1.dll und cygiconv-2.dll in das Verzeichnis von rsyncBackup.vbs kopiert. So funktioniert es ohne Probleme.

Nach dem ersten Testlauf vielen mir dann aber immer noch Fehlereinträge in der Log-Datei auf. Der Zugriff auf eigenartige Ordner im Home-Verzeichnis sei nicht möglich gewesen. Nur sah ich diese Ordner nie im Homeverzeichnis. Auch hier wurde ich nach kurzer Recherche fündig: bei Windows Vista liegen im Homeverzeichnis Links auf die einzelnen Unterverzeichnisse, die jetzt in AppsData liegen. Darauf kann aber rsync nicht zugreifen und meldet dann den Fehler. Daher habe ich meine Exclude-Regeln um die Dateien erweitert. Hier das ganze zum kopieren:

excludeFiles = Array("parent.lock",_
"/Username/Anwendungsdaten",_
"/Username/AppData/Local/Anwendungsdaten",_
"/Username/AppData/Local/Verlauf",_
"/Username/AppData/Roaming/Microsoft/Windows/Start Menu/Programme",_
"/Username/Cookies",_
"/Username/Documents/Eigene Bilder",_
"/Username/Documents/Eigene Musik",_
"/Username/Documents/Eigene Videos",_
"/Username/Druckumgebung",_
"/Username/Eigene Dateien",_
"/Username/Lokale Einstellungen",_
"/Username/Recent",_
"/Username/Netzwerkumgebung",_
"/Username/SendTo",_
"/Username/Startmenü",_
"/Username/Vorlagen",_
"/Username/AppData/Local/Temp",_
"/Username/AppData/Local/Temporary Internet Files",_
"/Username/AppData/Local/Microsoft/Windows/Temporary Internet Files",_
"/Username/AppData/Local/Mozilla/Firefox/Profiles/k9h7ppq2.default/Cache",_
"/Username/AppData/Roaming/Microsoft/Windows/Recent",_
"/Username/NTUSER.DAT*",_
"/Username/ntuser.dat.LOG1",_
"/Username/ntuser.dat.LOG2",_
"/Username/AppData/Local/Microsoft/Windows Defender",_
"/Username/AppData/Local/Microsoft/Windows/UsrClass.dat",_
"/Username/AppData/Local/Microsoft/Windows/UsrClass.dat.LOG1",_
"/Username/AppData/Local/Microsoft/Windows/UsrClass.dat.LOG2",_
"rsyncBackup*")

Aber Achtung: die Anführungszeichen sind hier typographische (ein Fehler von Intypo?). Also bitte beim Kopieren korrigieren!

Viel Erfolg damit!

PS: liebe c’t-Redaktion: Herzlichen Glückwunsch zum 25. Geburtstag!
Ein schöner Artikel dazu erschien auf Spiegel Online: Zentralorgan von Nerdistan

« »