Entries tagged as backup
Related tags
Friday, 21. May 2010
Wolfgang Barth: "Datensicherung unter Linux"
Endlich mal wieder ein Sachbuch, nach längerer Zeit. Diesmal geht es um das profunde Thema Backups unter Linux und Unix. Das Thema ist ja eigentlich recht wichtig, dennoch wird das Thema leider viel zu oft vernachlässigt. Mit diesem Thema wendet sich Barth sowohl an Privatanwender, als auch an kleinere Unternehmen.
Der Author geht zunächst auf einige wichtige Konzepte und Begriffe ein, ehe es praktisch wird. So bespricht er ausführlich die Programme tar, cpio, pax, rsync und natürlich amanda, dem er ein komplettes Kapitel widmet. Der Beschreibung zufolge scheint amada ein ziemlich durchdachtes Konzept in Verbindung mit Magnetbändern zu sein. Damit habe ich leider überhaupt keine Erfahrung, wie ich auch sonst keine Erfahrung mit Magnetbändern habe. Ich bin halt nur interessierter Hobby-Admin.
Leider ist das Buch etwas Magnetband lastig, was für einen interessierten Heimanwender wohl eher eine ungewöhnliche Aussattung ist. Auch die lang gewälzten Erklärungen zu tar/cpio/mt/dd/ hätte er sich eigentlich sparen können, Manpages gehören schließlich zur Grundausstattung und es ist ja nicht so, dass sich die Optionen von diesen Programmen nich auch ändern können. Gnu Tar ist ja ein schönes Beispiel dafür.
Leider wird bacula in diesem Buch nicht erwähnt. Das hätte im Vergleich zu amanda da durchaus interessant werden können. Aber vielleicht war bacula damals (2004) noch nicht so verbreitet, wenn es das überhaupt schon gab.
Man merkt dem Buch halt leider auch an diversen Stellen sein Alter an. So würde ich vermuten, dass sich die Kapazitäten diverser Band-Laufwerke mittlerweile deutlich geändert haben (wenn es die diversen Typen überhaupt noch gibt, ein kurzer Blick in die Wikipedia ließ mich jedenfalls zweifeln, ob für alle dort vorgestellten Technologien noch Medien zu haben sind).
Ein bißchen hätte er ja auch noch auf die diversen Heimandwender Backup Projekte eingehen können, die gerade im OpenSource Umfeld verfügbar sind. Déja-dup, oder diverse Time-Machine Clones oder duplicity oder rdiff oder rsnapshot oder oder...
Trotzdem interessante Lektüre. Dabei fällt mir ein, ich sollte mir eindlich wieder eine externe Festplatte zur Datensicherung zulegen …
Friday, 24. April 2009
Restore eines Backups
Nun hab ich seit mehr als 2 Jahren meine Backup-Lösung auf Basis von rsnapshot und Truecrypt im Einsatz.
Diese Woche hatte ich sozusagen den Ernstfall. Ich wollte meine Daten auf eine neue Maschine syncen. Nachdem ich mittels Truecrypt die Partition entschlüsselt hatte brach das Kopieren immer mit einem "Acces Denied" Fehler ab.
Zunächst dachte, das wären Anzeichen für den baldigen bevorstehenden Tod meiner Festplatte. Leicht beunruhigt ließ ich einen Dateisystemcheck laufen, der aber keine Ergebnisse brachte. Testweise an mein altes Arbeitsgerät angeschlossen und siehe da, alles funktioniert wie zuvor. Das machte mich stutzig und nach kurzem Nachdenken kam ich auch auf die Lösung: Das Backup erfolgt aus mehreren Gründen auf ein NTFS-Dateisystem (u.a. Unterstüzung für Dateien größer > 4 GB, nicht so starke Fragmentierung und eben auch Zugriffsberechtigungen). Und da haben wir auch schon das Problem: die ACLs, denn der Inhaber/Owner der Dateien war auf dem neuen System ein anderer (obwohl der Username jedesmal der selbe war).
Leider brachte Google zum Ändern nur die Hinweise: rechter Mausklick auf Datei, Menüpunkt Properties und dann im Reiter Security kann man die Berechtigungen anpassen. Nur, auf dem neuen System gab es den Menüpunkt nicht. Den gibt es nämlich nur, wenn man "Use Simple File Sharing (Recommended)" nicht angehakt hat (Explorer, Menü Tools->Folder Options, Reiter View, letzter Punkt). Nach dem ich den Haken entfernt hatte, gab es auch den Reiter Security in den Eigenschaften einer Datei.
Also in die Eigenschaften der Ordner gegangen, Reiter Security, den Advanced Knopf ausgewählt und nun einmal im Reiter Permissions dem neuen Benutzer explizit alle Rechte geben und zusätzlich im Reiter den Owner auf den neuen alten Nutzer gesetzt und nicht vergessen das Häkchen "Replace permission entries on all child objects." bei Permissions anhaken und im Reiter Owner das Häkchen "Replace Owner on subcontainers and objects" anhaken. Damit die Änderungen auch in allen Unterobjekten übernommen werden.
Danach ok anklicken und Windows rattert über die komplette Backup Platte und ändert alles wie gewünscht.
Diese Woche hatte ich sozusagen den Ernstfall. Ich wollte meine Daten auf eine neue Maschine syncen. Nachdem ich mittels Truecrypt die Partition entschlüsselt hatte brach das Kopieren immer mit einem "Acces Denied" Fehler ab.
Zunächst dachte, das wären Anzeichen für den baldigen bevorstehenden Tod meiner Festplatte. Leicht beunruhigt ließ ich einen Dateisystemcheck laufen, der aber keine Ergebnisse brachte. Testweise an mein altes Arbeitsgerät angeschlossen und siehe da, alles funktioniert wie zuvor. Das machte mich stutzig und nach kurzem Nachdenken kam ich auch auf die Lösung: Das Backup erfolgt aus mehreren Gründen auf ein NTFS-Dateisystem (u.a. Unterstüzung für Dateien größer > 4 GB, nicht so starke Fragmentierung und eben auch Zugriffsberechtigungen). Und da haben wir auch schon das Problem: die ACLs, denn der Inhaber/Owner der Dateien war auf dem neuen System ein anderer (obwohl der Username jedesmal der selbe war).
Leider brachte Google zum Ändern nur die Hinweise: rechter Mausklick auf Datei, Menüpunkt Properties und dann im Reiter Security kann man die Berechtigungen anpassen. Nur, auf dem neuen System gab es den Menüpunkt nicht. Den gibt es nämlich nur, wenn man "Use Simple File Sharing (Recommended)" nicht angehakt hat (Explorer, Menü Tools->Folder Options, Reiter View, letzter Punkt). Nach dem ich den Haken entfernt hatte, gab es auch den Reiter Security in den Eigenschaften einer Datei.
Also in die Eigenschaften der Ordner gegangen, Reiter Security, den Advanced Knopf ausgewählt und nun einmal im Reiter Permissions dem neuen Benutzer explizit alle Rechte geben und zusätzlich im Reiter den Owner auf den neuen alten Nutzer gesetzt und nicht vergessen das Häkchen "Replace permission entries on all child objects." bei Permissions anhaken und im Reiter Owner das Häkchen "Replace Owner on subcontainers and objects" anhaken. Damit die Änderungen auch in allen Unterobjekten übernommen werden.
Danach ok anklicken und Windows rattert über die komplette Backup Platte und ändert alles wie gewünscht.
Wednesday, 28. February 2007
Verschlüsselte Backups auf Windows Maschinen mittels TrueCrypt und rsnapshot
Vor kurzem hab ich mir überlegt, wie ich auf meinem dienstlichen Laptop möglichst effektiv meine Backups erledige. Leider besitzt dieser kein DVD-Laufwerk, so dass DVDs als Backupmedium ausfallen und CDs sind mittlerweile zu klein.
Vorüberlegung:
Ich bin beruflich recht viel unterwegs und so hab ich mich für eine kleine externe 2,5 Zoll USB-Festplatte als Medium entschieden, die nimmt nicht soviel Platz weg, kann über den USB-Port mit Strom versorgt werden und gibt es bei ausreichender Kapazität für einen angemessenes Entgelt.
Zusätzlich wollte ich meine Backups auf der Festplatte nicht unverschlüsselt rumliegen lassen. Also mußte eine Lösung her, bei der die Backups verschlüsselt werden auf die eine oder andere Weise.
Backuplösungen für Windows gibt es ja wie Sand am Meer, angefangen bei der mitgelieferten Windows eigenen Lösung bis hin zu Freeware, Shareware und andere kostenpflichtige Software. Da ich aber keine Lust hatte, ewig und 3 Tage passende Software zu testen (schließlich wollte ich meine Daten sichern), schaute ich mir zunächst die mir aus der Linuxwelt bekannten Lösungen duplicity und rsnapshot an.
Duplicity macht eigentlich genau das, was ich möchte. Es erstellt inkrementelle Backups, die zusätzlich noch in einem tar-Archiv verschlüsselt werden. Das habe ich aber zunächst nicht ans laufen bekommen unter Windows.
Rsnapshot war mir auch schon bekannt und benutzt rsync um nur die geänderten Daten zu übertragen. Durch die Nutzung von hardlinks ist dabei jedes Backup hinterher ein Vollbackup. Ein Hardlink ist im Prinzip ein Verweis auf eine Datei. Nachdem dieser Link angelegt ist, kann man nicht mehr unterscheiden, was der Link ist und was der Verweis. Beide zeigen auf das gleiche physikalische Objekt, dennoch wird nur einmal dessen Platz belegt.
Das macht die Datenübertragung natürlich effektiv und verkürzt die Backupdauer.
TrueCrypt:
Um das Backup verschlüsselt zu erstellen, benutzte ich TrueCrypt. Es ermöglicht das erstellen von verschlüsselten Laufwerken aus Containerdateien oder Partitionen. TrueCrypt unterstützt zudem seit Kernel 2.6.5 auch Linux, so dass es möglich ist, ein entsprechend verschlüsseltes Laufwerk auch unter Linux zu nutzen, was ich aber noch nicht ausprobieren konnte. TrueCrypt ist auch OpenSource und kommt mit einer sehr guten englischen Dokumentation, die ich nur empfehlen kann. Da TrueCrypt als Gerätetreiber installiert wird, benötigt man aber Administrator Rechte, damit es funktioniert; als nicht privilegierter User kann man TrueCrypt immerhin eingeschränkt nutzen, wenn ein Administrator es installiert hat.
Eine Anleitung, wie man jetzt eine verschlüsselte Partition erstellt, spare ich mir an dieser Stelle, das haben andere schon sehr gut gelöst:
Als Anmerkung sei dazu gesagt, wenn man bei den Backups den Vorteil von Hardlinks ausnutzen möchte, muß man als Dateisystem NTFS angeben, denn FAT unterstüzt keine Hardlinks.
Installation von rsnapshot:
Auf der Website von rsnapshot steht als unterstütztes Betriebssystem nicht explizit Windows dabei, rsnapshot funktioniert aber problemlos mittels Cygwin. Dabei ist darauf zu achten, dass mindestens Perl, rsync, coreutils und automake/autoconf installiert werden. Die werden aber normalerweise immer installiert, so dass keine besondere Selektion nötig ist. Möchte man rsnapshot sauber installieren, kann man zusätzlich noch Stow.
Auf der Website von rsnapshot lädt man sich das generische Unix-Paket herunter (momentan rsnapshot-1.3.0.tar.gz) und speichert es z.B. in c:\temp.
Nun startet man Cygwin:
$ cd /cygdrive/c/temp
$ tar -xzf rsnapshot-1.3.0.tar.gz
$ cd rsnapshot-1.3.0
$ ./configure --prefix=/usr/local/stow/rsnapshot-1.3.0
$ make test
$ make install
$ cd /usr/local/stow/
$ stow rsnapshot-1.3.0
(Cygwin mappt die Windowslaufwerke auf ein POSIX-Dateisystem, wobei die Laufwerke unter /cygdrive eingehängt sind. D.h. C:\temp findet sich unter /cygdrive/c/temp)
Man wechselt also in das temporäre Verzeichnis, in dem sich das Archiv von rsnapshot befindet und entpackt das Archiv (tar -xzf ...). Danach konfiguriert sich das Programm (es sucht nach abhängigen Programmen wie rsync und cp). Hierbei kann zusätzlich der Parameter --prefix angegeben werden (um es an einen ganz bestimmten Ort zu installieren oder es mittels stow installiert werden soll, falls nicht, fällt der letzte Schritt weg). Danach ist es sinnvoll, die Testsuite durchlaufen zu lassen und wenn dass alles erfolgreich war, kann man es im Dateisystem installieren.
Konfiguration von rsnapshot
Jetzt geht es an die Konfiguration von rsnapshot. Am besten man kopiert die rsnapshot.conf.default aus /usr/local/etc als rsnapshot.conf nach /usr/local/etc. Dies kann man unter cygwin machen (cp /usr/local/etc/rsnapshot.conf.default /usr/local/etc/rsnapshot.conf) oder auch mit dem Windows Explorer. Hier muß man die Cygwin Pfade wieder umwandeln in Windows Pfade. Wenn Cygwin nach C:\cygwin installiert wurde, findet man die Konfigurationsdatei unter C:\cygwin\usr\local\etc\rsnapshot.conf.default. Die kann man jetzt einfach umbenennen (.default löschen) bzw. kopieren.
Jetzt muß die Konfigurationsdatei noch angepasst werden. Dazu muß diese Datei mit einem Editor geöffnet werden. Anpassen tun wir die folgenden Stellen:
# Das Verzeichnis, wohin kopiert werden soll:
snapshot_root /cygdrive/d/
# Das snapshot_root nicht anlegen, falls es nicht existiert
# (Festplatte nicht angeschlossen)
no_create_root 1
# cmd_cp aktivieren (wir nutzen GNU cp!)
cmd_cp /usr/bin/cp
# auskommentieren von Syslog
# evtl. nicht installiert, bzw. wen interessiert das
# Syslog in Cygwin?
#cmd_logger /path/to/logger
# aktivieren von du, um eine Auswertung des Platzbedarfs zu
# erhalten
cmd_du /usr/bin/du
# aktivieren von rsnapshot-diff, um später Unterschiede
# verschiedener Backups herauszufinden
cmd_rsnapshot_diff /usr/local/bin/rsnapshot-diff
# Ich möchte gern rsync-Statistiken sehen, also wird noch
# der Parameter --stats für rsync hinzugefügt
rsync_long_args --delete --numeric-ids --relative --delete-excluded --stats
# Diese Datei enthält pro Zeile Verzeichnisse, die nicht gesichert werden.
exclude_file /cygdrive/c/rsnapshot_exclude
# neuere rsyncs können selber hardlinks erstellen, also aktivieren wir
# link_dest
link_dest 1
# Quellen definieren: Was soll gesichert werden?
# Achtung: \ durch / ersetzen, laufwerksbuchstaben
# ersetzen durch /cygdrive/laufwerk
backup /cygdrive/c/Documents and Settings/Administrator/My Documents/ localhost/
backup /cygdrive/c/Bilder/ localhost/
Das soll als Anregung reichen. Wichtig ist, am Ende zu definieren, was gesichert werden soll. In diesem Fall sollen die Ordner 'My Documents' und C:\Bilder gesichert werden. Durch die Angabe von exclude_file und include_file kann genau gesteuert werden, welche Dateien gesichert werden sollen und welche ausgelassen werden. Meine exclude_file sieht so aus:
/cygdrive/c/Documents and Settings/Administrator/My Documents/My Videos/
/cygdrive/c/Documents and Settings/Administrator/My Documents/My Pictures/
/cygdrive/c/Documents and Settings/Administrator/My Documents/My Music/
Achtung: rsnapshot ist extrem sensitiv in der Unterscheidung von Leerzeichen und Tabulatoren, Pfade müssen immer mit einem / aufhören. Deshalb ist es eine gute Idee, die Konfiguration prüfen zu lassen:
$ rsnapshot configtest
Syntax OK
Die Syntax ist ok. Um das Backup zu starten, reicht der Aufruf rsnapshot zusammen mit dem gewünschten Intervall, z.B. hourly, daily oder weekly:
$ rsnapshot hourly
Verschlüsseln und sichern:
Der Vorgang sieht so aus:
Aufwändig...
Doch man kann das auch alles mit einer kleinen Batch-Datei scripten und automatisieren:
@echo off & SETLOCAL ENABLEDELAYEDEXPANSION
:: Diese Variablen sollten angepasst werden.
:: TC: wo befindet sich Truecrypt?
set TC=%~dp0TrueCrypt
:: Welches Gerät soll eingehängt werden
set Device="\Device\Harddisk1\Partition1"
:: Das Gerät soll welchen Laufwerksbuchstaben bekommen?
set LW=D:
:: Das Passwort (Achtung: nicht empfehlenswert, es anzugeben!)
set PW=""
:: Wo befindet sich cygwin
set Cygwin="C:\Cygwin\bin"
set PATH=%TC%;%path%
:check
cls
echo Bitte eine Auswahl treffen:
echo ============================
echo.
echo 1. Starte monthly Backup
echo 2. Starte weekly Backup
echo 3. Starte daily Backup
echo 4. Starte hourly Backup (default)
echo.
echo 6. Mounte Gerät
echo 7. Unmounte Gerät
echo.
echo 0. Abbrechen
echo.
echo ___________________________
echo.
set /P aus=Auswahl:
echo.
:: Bestimme den Defaultwert wenn nur Enter gedrückt wurde.
if "%aus%" == "" (set aus=4)
if !aus! == 0 goto end
if !aus! == 1 set INTERVAL="monthly" & goto backup
if !aus! == 2 set INTERVAL="weekly" & goto backup
if !aus! == 3 set INTERVAL="daily" & goto backup
if !aus! == 4 set INTERVAL="hourly" & goto backup
if !aus! == 6 goto mount
if !aus! == 7 goto umount
:mount
if not exist %LW%\NUL (
echo Mount Gerät %Device% als Laufwerk D.
echo.
%TC%\TrueCrypt.exe /q /p%PW% /l%LW% /a /v%Device%
) else (
echo Gerät bereits eingehängt.
echo.
pause
)
goto check
:backup
if exist %LW%\NUL (
%Cygwin%\bash -l ~/backup.sh %INTERVAL%
pause
) else (
echo "Gerät nicht verfügbar."
echo "Breche ab..."
pause
)
goto check
:umount
echo Hänge Gerät %Device% aus.
echo.
%TC%\TrueCrypt.exe /q /d
goto check
:end
cls
echo.
echo Ich habe fertig.
echo.
pause
Ich hab das Script mal hier abgelegt.
Um das Backup korrekt auszuführen, wird noch das Shell-Script backup.sh benötigt. Es macht nichts weiter, als rsnapshot mit dem übergebenen Parameter aufzurufen und sieht so aus:
#!/bin/sh --
echo "Executing: rsnapshot "$1""
rsnapshot "$1"
Diese Datei einfach noch nach /home/user (bzw. C:\cygwin\home\user) kopieren und dann klappt es auch mit dem Aufruf von rsnapshot.
Ich benutze diese beiden Skript-Datei, um meine Daten zu sichern, dazu habe ich habe auf meiner USB-Festplatte 1 kleine unverschlüsselte Partition angelegt und diese Batch-Datei dort hin kopiert (F:\). Zusätzlich habe ich TrueCrypt im TravellerModus auf diesem Laufwerk installiert (F:\TrueCrypt). Wann immer ich jetzt Lust habe, meine Daten zu sichern, starte ich diese Batchdatei und alles andere funktioniert fast automatisch.
Update 01.03.2007: das Script backup.sh ergänzt.
Vorüberlegung:
Ich bin beruflich recht viel unterwegs und so hab ich mich für eine kleine externe 2,5 Zoll USB-Festplatte als Medium entschieden, die nimmt nicht soviel Platz weg, kann über den USB-Port mit Strom versorgt werden und gibt es bei ausreichender Kapazität für einen angemessenes Entgelt.
Zusätzlich wollte ich meine Backups auf der Festplatte nicht unverschlüsselt rumliegen lassen. Also mußte eine Lösung her, bei der die Backups verschlüsselt werden auf die eine oder andere Weise.
Backuplösungen für Windows gibt es ja wie Sand am Meer, angefangen bei der mitgelieferten Windows eigenen Lösung bis hin zu Freeware, Shareware und andere kostenpflichtige Software. Da ich aber keine Lust hatte, ewig und 3 Tage passende Software zu testen (schließlich wollte ich meine Daten sichern), schaute ich mir zunächst die mir aus der Linuxwelt bekannten Lösungen duplicity und rsnapshot an.
Duplicity macht eigentlich genau das, was ich möchte. Es erstellt inkrementelle Backups, die zusätzlich noch in einem tar-Archiv verschlüsselt werden. Das habe ich aber zunächst nicht ans laufen bekommen unter Windows.
Rsnapshot war mir auch schon bekannt und benutzt rsync um nur die geänderten Daten zu übertragen. Durch die Nutzung von hardlinks ist dabei jedes Backup hinterher ein Vollbackup. Ein Hardlink ist im Prinzip ein Verweis auf eine Datei. Nachdem dieser Link angelegt ist, kann man nicht mehr unterscheiden, was der Link ist und was der Verweis. Beide zeigen auf das gleiche physikalische Objekt, dennoch wird nur einmal dessen Platz belegt.
Das macht die Datenübertragung natürlich effektiv und verkürzt die Backupdauer.
TrueCrypt:
Um das Backup verschlüsselt zu erstellen, benutzte ich TrueCrypt. Es ermöglicht das erstellen von verschlüsselten Laufwerken aus Containerdateien oder Partitionen. TrueCrypt unterstützt zudem seit Kernel 2.6.5 auch Linux, so dass es möglich ist, ein entsprechend verschlüsseltes Laufwerk auch unter Linux zu nutzen, was ich aber noch nicht ausprobieren konnte. TrueCrypt ist auch OpenSource und kommt mit einer sehr guten englischen Dokumentation, die ich nur empfehlen kann. Da TrueCrypt als Gerätetreiber installiert wird, benötigt man aber Administrator Rechte, damit es funktioniert; als nicht privilegierter User kann man TrueCrypt immerhin eingeschränkt nutzen, wenn ein Administrator es installiert hat.
Eine Anleitung, wie man jetzt eine verschlüsselte Partition erstellt, spare ich mir an dieser Stelle, das haben andere schon sehr gut gelöst:
- Alp Uçkan - Festplatten verschlüsseln mit TrueCrypt (mit Containerdatei)
- Alp Uçkan - Truecrypt: Hidden volumes unter Linux (mit verstecktem Container in TC-Containerdatei)
- F!XMBR / Chris - TrueCrypt-Anleitung (mit Partition)
- F!XMBR / Chris - TrueCrypt-Anleitung (mit verstecktem Container in TC-Containerdatei)
- F!XMBR / Chris - TrueCrypt-Anleitung (Verwenden von Schlüsseldateien)
Als Anmerkung sei dazu gesagt, wenn man bei den Backups den Vorteil von Hardlinks ausnutzen möchte, muß man als Dateisystem NTFS angeben, denn FAT unterstüzt keine Hardlinks.
Installation von rsnapshot:
Auf der Website von rsnapshot steht als unterstütztes Betriebssystem nicht explizit Windows dabei, rsnapshot funktioniert aber problemlos mittels Cygwin. Dabei ist darauf zu achten, dass mindestens Perl, rsync, coreutils und automake/autoconf installiert werden. Die werden aber normalerweise immer installiert, so dass keine besondere Selektion nötig ist. Möchte man rsnapshot sauber installieren, kann man zusätzlich noch Stow.
Auf der Website von rsnapshot lädt man sich das generische Unix-Paket herunter (momentan rsnapshot-1.3.0.tar.gz) und speichert es z.B. in c:\temp.
Nun startet man Cygwin:
$ cd /cygdrive/c/temp
$ tar -xzf rsnapshot-1.3.0.tar.gz
$ cd rsnapshot-1.3.0
$ ./configure --prefix=/usr/local/stow/rsnapshot-1.3.0
$ make test
$ make install
$ cd /usr/local/stow/
$ stow rsnapshot-1.3.0
(Cygwin mappt die Windowslaufwerke auf ein POSIX-Dateisystem, wobei die Laufwerke unter /cygdrive eingehängt sind. D.h. C:\temp findet sich unter /cygdrive/c/temp)
Man wechselt also in das temporäre Verzeichnis, in dem sich das Archiv von rsnapshot befindet und entpackt das Archiv (tar -xzf ...). Danach konfiguriert sich das Programm (es sucht nach abhängigen Programmen wie rsync und cp). Hierbei kann zusätzlich der Parameter --prefix angegeben werden (um es an einen ganz bestimmten Ort zu installieren oder es mittels stow installiert werden soll, falls nicht, fällt der letzte Schritt weg). Danach ist es sinnvoll, die Testsuite durchlaufen zu lassen und wenn dass alles erfolgreich war, kann man es im Dateisystem installieren.
Konfiguration von rsnapshot
Jetzt geht es an die Konfiguration von rsnapshot. Am besten man kopiert die rsnapshot.conf.default aus /usr/local/etc als rsnapshot.conf nach /usr/local/etc. Dies kann man unter cygwin machen (cp /usr/local/etc/rsnapshot.conf.default /usr/local/etc/rsnapshot.conf) oder auch mit dem Windows Explorer. Hier muß man die Cygwin Pfade wieder umwandeln in Windows Pfade. Wenn Cygwin nach C:\cygwin installiert wurde, findet man die Konfigurationsdatei unter C:\cygwin\usr\local\etc\rsnapshot.conf.default. Die kann man jetzt einfach umbenennen (.default löschen) bzw. kopieren.
Jetzt muß die Konfigurationsdatei noch angepasst werden. Dazu muß diese Datei mit einem Editor geöffnet werden. Anpassen tun wir die folgenden Stellen:
# Das Verzeichnis, wohin kopiert werden soll:
snapshot_root /cygdrive/d/
# Das snapshot_root nicht anlegen, falls es nicht existiert
# (Festplatte nicht angeschlossen)
no_create_root 1
# cmd_cp aktivieren (wir nutzen GNU cp!)
cmd_cp /usr/bin/cp
# auskommentieren von Syslog
# evtl. nicht installiert, bzw. wen interessiert das
# Syslog in Cygwin?
#cmd_logger /path/to/logger
# aktivieren von du, um eine Auswertung des Platzbedarfs zu
# erhalten
cmd_du /usr/bin/du
# aktivieren von rsnapshot-diff, um später Unterschiede
# verschiedener Backups herauszufinden
cmd_rsnapshot_diff /usr/local/bin/rsnapshot-diff
# Ich möchte gern rsync-Statistiken sehen, also wird noch
# der Parameter --stats für rsync hinzugefügt
rsync_long_args --delete --numeric-ids --relative --delete-excluded --stats
# Diese Datei enthält pro Zeile Verzeichnisse, die nicht gesichert werden.
exclude_file /cygdrive/c/rsnapshot_exclude
# neuere rsyncs können selber hardlinks erstellen, also aktivieren wir
# link_dest
link_dest 1
# Quellen definieren: Was soll gesichert werden?
# Achtung: \ durch / ersetzen, laufwerksbuchstaben
# ersetzen durch /cygdrive/laufwerk
backup /cygdrive/c/Documents and Settings/Administrator/My Documents/ localhost/
backup /cygdrive/c/Bilder/ localhost/
Das soll als Anregung reichen. Wichtig ist, am Ende zu definieren, was gesichert werden soll. In diesem Fall sollen die Ordner 'My Documents' und C:\Bilder gesichert werden. Durch die Angabe von exclude_file und include_file kann genau gesteuert werden, welche Dateien gesichert werden sollen und welche ausgelassen werden. Meine exclude_file sieht so aus:
/cygdrive/c/Documents and Settings/Administrator/My Documents/My Videos/
/cygdrive/c/Documents and Settings/Administrator/My Documents/My Pictures/
/cygdrive/c/Documents and Settings/Administrator/My Documents/My Music/
Achtung: rsnapshot ist extrem sensitiv in der Unterscheidung von Leerzeichen und Tabulatoren, Pfade müssen immer mit einem / aufhören. Deshalb ist es eine gute Idee, die Konfiguration prüfen zu lassen:
$ rsnapshot configtest
Syntax OK
Die Syntax ist ok. Um das Backup zu starten, reicht der Aufruf rsnapshot zusammen mit dem gewünschten Intervall, z.B. hourly, daily oder weekly:
$ rsnapshot hourly
Verschlüsseln und sichern:
Der Vorgang sieht so aus:
- USB Festplatte anhängen
- TrueCrypt starten
- verschlüsselte Partition einhängen/mounten
- Cygwin starten
- rsnapshot aufrufen und Backup starten
- Ende abwarten
- Festplatte aushängen/dismounten/umounten
- Festplatte vom USB trennen
Aufwändig...
Doch man kann das auch alles mit einer kleinen Batch-Datei scripten und automatisieren:
@echo off & SETLOCAL ENABLEDELAYEDEXPANSION
:: Diese Variablen sollten angepasst werden.
:: TC: wo befindet sich Truecrypt?
set TC=%~dp0TrueCrypt
:: Welches Gerät soll eingehängt werden
set Device="\Device\Harddisk1\Partition1"
:: Das Gerät soll welchen Laufwerksbuchstaben bekommen?
set LW=D:
:: Das Passwort (Achtung: nicht empfehlenswert, es anzugeben!)
set PW=""
:: Wo befindet sich cygwin
set Cygwin="C:\Cygwin\bin"
set PATH=%TC%;%path%
:check
cls
echo Bitte eine Auswahl treffen:
echo ============================
echo.
echo 1. Starte monthly Backup
echo 2. Starte weekly Backup
echo 3. Starte daily Backup
echo 4. Starte hourly Backup (default)
echo.
echo 6. Mounte Gerät
echo 7. Unmounte Gerät
echo.
echo 0. Abbrechen
echo.
echo ___________________________
echo.
set /P aus=Auswahl:
echo.
:: Bestimme den Defaultwert wenn nur Enter gedrückt wurde.
if "%aus%" == "" (set aus=4)
if !aus! == 0 goto end
if !aus! == 1 set INTERVAL="monthly" & goto backup
if !aus! == 2 set INTERVAL="weekly" & goto backup
if !aus! == 3 set INTERVAL="daily" & goto backup
if !aus! == 4 set INTERVAL="hourly" & goto backup
if !aus! == 6 goto mount
if !aus! == 7 goto umount
:mount
if not exist %LW%\NUL (
echo Mount Gerät %Device% als Laufwerk D.
echo.
%TC%\TrueCrypt.exe /q /p%PW% /l%LW% /a /v%Device%
) else (
echo Gerät bereits eingehängt.
echo.
pause
)
goto check
:backup
if exist %LW%\NUL (
%Cygwin%\bash -l ~/backup.sh %INTERVAL%
pause
) else (
echo "Gerät nicht verfügbar."
echo "Breche ab..."
pause
)
goto check
:umount
echo Hänge Gerät %Device% aus.
echo.
%TC%\TrueCrypt.exe /q /d
goto check
:end
cls
echo.
echo Ich habe fertig.
echo.
pause
Ich hab das Script mal hier abgelegt.
Um das Backup korrekt auszuführen, wird noch das Shell-Script backup.sh benötigt. Es macht nichts weiter, als rsnapshot mit dem übergebenen Parameter aufzurufen und sieht so aus:
#!/bin/sh --
echo "Executing: rsnapshot "$1""
rsnapshot "$1"
Diese Datei einfach noch nach /home/user (bzw. C:\cygwin\home\user) kopieren und dann klappt es auch mit dem Aufruf von rsnapshot.
Ich benutze diese beiden Skript-Datei, um meine Daten zu sichern, dazu habe ich habe auf meiner USB-Festplatte 1 kleine unverschlüsselte Partition angelegt und diese Batch-Datei dort hin kopiert (F:\). Zusätzlich habe ich TrueCrypt im TravellerModus auf diesem Laufwerk installiert (F:\TrueCrypt). Wann immer ich jetzt Lust habe, meine Daten zu sichern, starte ich diese Batchdatei und alles andere funktioniert fast automatisch.
Update 01.03.2007: das Script backup.sh ergänzt.
(Page 1 of 1, totaling 3 entries)

