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
Julia
21. Dezember 2008 — 23:03
Danke für den Artikel!
Hat mir sehr geholfen, da mein rsync unter Vista plötzlich auch nicht mehr funktioniert hatte! Jetzt gehts wieder :)
Martin
18. Januar 2009 — 09:03
Hat funktioniert, bin sehr dankbar für den Hinweis.
Allerdings habe ich eine Weile gebraucht bis ich einen Download für „cwrsync“ gefunden habe.
Valentin Funk
18. Januar 2009 — 16:16
Hallo! Hier nochmals der Link, für alle die später „eingeschaltet“ haben: Download von cwrsync.
Zum weiteren Verständnis: cwRsync ist „nur“ ein anders zugeschnittenes Paket aus Elementen von cygwin und rsync — bereitgestellt von ITeF!x.
Stefan
22. Juni 2009 — 15:57
Hallo Valentin,
hat mir sehr weitergeholfen Dein kleines Howto. Es war zuerst etwas Tricky, aber dann funktionierte alles auch unter Windows Vista. Schön das Du auch gleich die „Exclude-Anweisung“ aufgelistet hast, mit Vista finden sich ja viele Ordner die man so garnicht sieht.
Vielen Dank
Gruß, Stefan
Valentin Funk
22. Juni 2009 — 16:52
Bitteschön! :-)