Gargi
31.05.2010, 22:00
Analog zu meinem Tutorial, das beschreibt, wie via rsync auf einen Server ein Backup gefahren werden kann hier noch eine Variante, die die wirkliche Power des rsync zeigt. Wir wollen nun Verzeichnisse auf einem Windows System auf eine externe USB Platte sichern. Wobei "sichern" nicht wirklich das richtige Wort ist, denn wir möchten unseren Datenbestand sozusagen synchronisieren. D.h. verändert sich etwas im Vergleich zu unserem ersten Backup auf der externen Platte werden nur die Änderungen durchgeführt, damit der Datenbestand auf der Maschine gleich dem auf der USB Platte ist. Das hat einen wesentlichen Vorteil: Die Geschwindigkeit. Ein Sync auf einer USB2 Platte mit einem Datenbestand von 115 GB ist innerhalb von zwei Minuten auf meinem Testsystem durch. Das erste Backup dauerte ca. 3 Stunden. Danach wie schon gesagt, nur das, was sich ändert.
Und das geht dazu noch extrem einfach!
Also dazu benötigt Ihr eine USB Platte, die mit NTFS formatiert sein muss. Ein vfat wird hier nicht funktionieren, da unser rsync dann immer wieder die Dateien frisch schreiben würde. Kurz: NTFS ist das Dateisystem, dass entsprechende Syncronisation unter Windows 7 / XP /Vista etc. zulässt und Sinn macht.
Also zunächst benötigen wir wieder ein Cygwin. Wie Ihr das installiert habe ich bereits ausführlich in meinem Tutorial unter folgender URL erklärt: http://www.gargi.org/showthread.php?2783-Cygwin-Linux-auf-Windows . Installiert zusätzlich bitte noch folgende Programme über das Setup:
nano
mc
rsync
Wenn fertig startet dann die Cygwinkonsole am besten als Administrator (wenn Ihr Userprofile sichern wollt). Dazu auf das Cygwin Icon rechts klicken und als Administrator starten. Dann habt Ihr schonmal die Eingabeaufforderung. Ja, das ist Linux, also werden wir unser Backup auch darüber fahren. Aber keine Sorge, sieht spartanisch aus, hat aber unglaubliche Power!
Jetzt einwenig Orientierung im System! Schaltet die USB Platte ein. Diese wird unter einen bestimmten Laufwerksbuchstaben gemountet. Ich nehme mal in unserem Beispiel das Laufwerk F an. Also auf F sollen nun unsere Backups. Wir wollen ein Userprofil sichern und ein weiteres Verzeichnis mit wichtigen Dokumenten.
Userverzeichnis:
C:\Users\Hans
Dokumente:
D:\Meine Dokumente
Unter Cygwin sind das dann folgende Pfade:
/cygdrive/c/Users/Hans
/cgdrive/d/Meine Dokumente
Da Linux keine Leerzeichen mag, gewöhnen wir uns gleich mal an, in Verzeichnissen Anführungszeichen zu verwenden, wenn wir diese aufrufen. Also lautet das dann
/cygdrive/d/"Meine Dokumente"
Das war es auch schon, mehr müsst Ihr fast nicht wissen. Also tippen wir mal zum Test einen rsync ein:
rsync -av --progress --delete /cygdrive/c/Users/Hans /cygdrive/f
Das einfach mal abschicken. Ihr seht nun, dass alle Dateien aus dem Profil kopiert werden. Das dauert natürlich einwenig. Kurze Erklärung zu den Parametern:
-a: Übernimmt alle Dateirechte, Datum etc.
-v: Zeigt an, was gerade kopiert wird
--progress: Zeigt in Prozent den Kopierfortschritt jeder Datei an. Macht bei große Daten Sinn, damit man nicht den Eindruck hat, es hätte sich was aufgehängt.
--delete: Eigentlich ein gefährlicher Parameter. D.h. wenn Ihr auf dem Ausgangsdatenträger was gelöscht habt, dann wird auch auf der USB Platte die gespiegelte Datei gelöscht. Damit ist diese auch weg! Nutzt den Parameter also nur dann, wenn Ihr eine 1:1 Spiegelung Eures Datenbestandes haben wollt.
Damit ihr nicht alles immer neu tippen müsst legt einfach ein Shell Skript an. Klingt kompliziert, ist aber ganz einfach. Startet den mcedit:
mcedit usb.sh
Füllt die Datei mit folgendem Inhalt (die Verzeichnisse ändert wie gewünscht ab):
#!/bin/sh
# zu sichernde Verzeichnisse
rsync -av --progress --delete /cygdrive/c/Users/Hans /cygdrive/f
rsync -av --progress --delete /cygdrive/d/"Meine Dokumente" /cygdrive/f
echo "Backup fertig!"
df -h /cygdrive/f
Der letzte Befehl df -h spuckt nach dem Backup aus, wieviel Platz Ihr noch auf Eurer Platte habt. Eine nicht unwichtige Info :)
Speichert die Änderung mit F2 und beendet den mcedit mit F10. Dann macht das Skript noch ausführbar:
chmod +x usb.sh
That's it! Startet das Backup in Zukunft dann mit Eurem Skript über
./usb.sh
Genial ist hier dann wirklich, dass nach dem ersten Sicherungslauf (der ja erstmal alles kopieren muss) beim zweiten Lauf dann die Synchronisation nur noch läuft. Und hier merkt Ihr erst, was der rsync für eine Power hat. Das geht so fix und so einfach, dass es im Grunde keine Ausrede mehr gibt, die ein Vernachlässigen eines regelmäßigen Backups begründet ;)
cu
Euer
Gargi
Und das geht dazu noch extrem einfach!
Also dazu benötigt Ihr eine USB Platte, die mit NTFS formatiert sein muss. Ein vfat wird hier nicht funktionieren, da unser rsync dann immer wieder die Dateien frisch schreiben würde. Kurz: NTFS ist das Dateisystem, dass entsprechende Syncronisation unter Windows 7 / XP /Vista etc. zulässt und Sinn macht.
Also zunächst benötigen wir wieder ein Cygwin. Wie Ihr das installiert habe ich bereits ausführlich in meinem Tutorial unter folgender URL erklärt: http://www.gargi.org/showthread.php?2783-Cygwin-Linux-auf-Windows . Installiert zusätzlich bitte noch folgende Programme über das Setup:
nano
mc
rsync
Wenn fertig startet dann die Cygwinkonsole am besten als Administrator (wenn Ihr Userprofile sichern wollt). Dazu auf das Cygwin Icon rechts klicken und als Administrator starten. Dann habt Ihr schonmal die Eingabeaufforderung. Ja, das ist Linux, also werden wir unser Backup auch darüber fahren. Aber keine Sorge, sieht spartanisch aus, hat aber unglaubliche Power!
Jetzt einwenig Orientierung im System! Schaltet die USB Platte ein. Diese wird unter einen bestimmten Laufwerksbuchstaben gemountet. Ich nehme mal in unserem Beispiel das Laufwerk F an. Also auf F sollen nun unsere Backups. Wir wollen ein Userprofil sichern und ein weiteres Verzeichnis mit wichtigen Dokumenten.
Userverzeichnis:
C:\Users\Hans
Dokumente:
D:\Meine Dokumente
Unter Cygwin sind das dann folgende Pfade:
/cygdrive/c/Users/Hans
/cgdrive/d/Meine Dokumente
Da Linux keine Leerzeichen mag, gewöhnen wir uns gleich mal an, in Verzeichnissen Anführungszeichen zu verwenden, wenn wir diese aufrufen. Also lautet das dann
/cygdrive/d/"Meine Dokumente"
Das war es auch schon, mehr müsst Ihr fast nicht wissen. Also tippen wir mal zum Test einen rsync ein:
rsync -av --progress --delete /cygdrive/c/Users/Hans /cygdrive/f
Das einfach mal abschicken. Ihr seht nun, dass alle Dateien aus dem Profil kopiert werden. Das dauert natürlich einwenig. Kurze Erklärung zu den Parametern:
-a: Übernimmt alle Dateirechte, Datum etc.
-v: Zeigt an, was gerade kopiert wird
--progress: Zeigt in Prozent den Kopierfortschritt jeder Datei an. Macht bei große Daten Sinn, damit man nicht den Eindruck hat, es hätte sich was aufgehängt.
--delete: Eigentlich ein gefährlicher Parameter. D.h. wenn Ihr auf dem Ausgangsdatenträger was gelöscht habt, dann wird auch auf der USB Platte die gespiegelte Datei gelöscht. Damit ist diese auch weg! Nutzt den Parameter also nur dann, wenn Ihr eine 1:1 Spiegelung Eures Datenbestandes haben wollt.
Damit ihr nicht alles immer neu tippen müsst legt einfach ein Shell Skript an. Klingt kompliziert, ist aber ganz einfach. Startet den mcedit:
mcedit usb.sh
Füllt die Datei mit folgendem Inhalt (die Verzeichnisse ändert wie gewünscht ab):
#!/bin/sh
# zu sichernde Verzeichnisse
rsync -av --progress --delete /cygdrive/c/Users/Hans /cygdrive/f
rsync -av --progress --delete /cygdrive/d/"Meine Dokumente" /cygdrive/f
echo "Backup fertig!"
df -h /cygdrive/f
Der letzte Befehl df -h spuckt nach dem Backup aus, wieviel Platz Ihr noch auf Eurer Platte habt. Eine nicht unwichtige Info :)
Speichert die Änderung mit F2 und beendet den mcedit mit F10. Dann macht das Skript noch ausführbar:
chmod +x usb.sh
That's it! Startet das Backup in Zukunft dann mit Eurem Skript über
./usb.sh
Genial ist hier dann wirklich, dass nach dem ersten Sicherungslauf (der ja erstmal alles kopieren muss) beim zweiten Lauf dann die Synchronisation nur noch läuft. Und hier merkt Ihr erst, was der rsync für eine Power hat. Das geht so fix und so einfach, dass es im Grunde keine Ausrede mehr gibt, die ein Vernachlässigen eines regelmäßigen Backups begründet ;)
cu
Euer
Gargi