Es gibt diverse Möglichkeiten, Daten zu sichern. Windows 7 bietet eine eingebaute Sicherungsfunktion, die Daten z.B. im Netzwerk oder auf anderen Festplatten speichert. Nachteil dieser Methode ist nur, dass kein direkter Zugriff auf die Dateien und eventuelle ältere Versionen möglich ist.
Die Zeitschrift c’t hat in der Ausgabe 21/2006 ein auf rsync basierendes Skript veröffentlicht, das ein dateibasiertes Backup bietet. Genial dabei ist, dass jeweils alle zu sichernden Dateien in einem kompletten Verzeichnisbaum auf dem zu sichernden Medium zu finden sind – allerdings tatsächlich nur einmal dort gespeichert werden. Bereits vorhandene Dateien werden durch NTFS Links verknüpft.
Nachdem das rsyncBackup Paket der c’t mit einer rsync Version aus 2006 arbeitet, hatte es ursprünglich einige Probleme. So wurden damals keine Pfade mit mehr als 255 Zeichen unterstützt und es gab zeitweise Probleme mit Umlauten. Die mitgelieferte rsync Version basiert auf Cygwin und wurde seitdem deutlich weiterentwickelt. Auch unterstützt Cygwin mittlerweile Unicode, womit viele Probleme der Vergangenheit angehören. Somit sichert rsync mittlerweile auch längere Pfade und der Betrieb unter Windows 7 und Server 2008 R2, und somit auch x64 Systemen, ist möglich.
Man benötigt:
- das rsyncBackup Skript der c’t
- eine aktuelle Version von Cygwin
- ein Sicherungsmedium, welches NTFS formatiert ist (externe HDD, iSCSI Target, weitere interne HDD)
Nachdem man das rsyncBackup Paket entpackt hat, löscht man daraus rsync.exe und die Cygwin DLLs. Aus einer aktuellen Cygwin Installation werden dann folgende Dateien ins Verzeichnis kopiert: cyggcc_s-1.dll, cygiconv-2.dll, cygpopt-0.dll, cygwin1.dll sowie natürlich rsync.exe. In der rsyncBackup.vbs müssen nun noch Quelle und Ziel definiert werden. Da mit Links im Dateisystem gearbeitet wird, ist es zwingend erforderlich, dass das Ziel NTFS formatiert ist. Ein normales Netzwerklaufwerk ist somit als Ziel nicht möglich.
Mit dem Befehl start /wait /belownormal cscript.exe rsyncBackup.vbs wird die Sicherung gestartet. Im Dokumente Verzeichnis des aktuellen Benutzers wird nach dem Backup eine Logdatei angelegt. Die Sicherung lässt sich natürlich über die Aufgabenplanung auch planen. Ich nutze dieses Skript, um zusätzlich zur internen Sicherung von Windows einige Datenverzeichnisse nochmals auf ein anderes, externes Medium zu sichern.
Hallo Ingo,
super Beitrag, dadurch bin ich auf das Backup-Skript aufmerksam geworden und wollte es auch gleich ausprobieren. Es tut nämlich genau das, was ich suche.
Ich habe mir die aktuelle ZIP-Datei von c’t geholt, entpackt, die rsyncBackup.vbs angepasst und über rsyncStart.bat lief das Skript einwandfrei.
Nun wollte ich das Ganze unter Windows 7 als Scheduled Task eintragen, allerdings egal was ich tue, es läuft nicht (wenn ich es manuell ausführe, ist es kein Problem). Kannst Du mit hier bitte einen Tipp geben, wie Du das gemacht hast?
Vielen Dank und weiterhin frohes bloggen,
Benny
Hallo Benny,
ich hatte das gleiche Problem. Der Scheduler kann in Win7 keine bat-Dateien direkt starten. Du musst hierfür die cmd.exe starten lassen (c:\Windows\system32\cms.exe – bei Win7 64Bit liegt es in einem anderen Ordner) und den Pfad zur .bat als Argument angeben:
/c“C:\Pfad zum Script\rsyncStart.bat“
Dann noch zusätzlich bei „Starten in“ den Pfad zum Script eintragen:
C:\Pfad zum Script
Beim „Starten in“ darf der Pfad übrigens nicht in Anführungszeichen stehen, war bei mir zunächst noch eine Fehlerursache. Aber jetzt läuft es!
Viele Grüße
Basti
In der Pfadangabe muss es natürlich „cmd.exe“ heißen, habe mich vertippt.