Bisher nutzte ich rsync bzw. grsync für ein von Hand angestoßenes Backup meines /home Verzeichnisses auf ein über NFS gemountetes Volume auf meinem heimischen Backupserver.
Jetzt hab ich mir zusätzlich, für die tägliche Praxis, noch rsnapshot installiert und bin mehr als zufrieden.
sudo apt-get install rsnapshot
Konfiguration
Dann wird die zentrale Konfigurationsdatei angepasst. Hierbei muss als Trennzeichen immer Tab verwendet werden und nicht Space:
sudo vi /etc/rsnapshot.conf
Hier habe ich eine USB Festplatte als Backupmedium definiert, nachdem ich das Verzeichnis auf dieser angelegt hatte,
snapshot_root /media/trekstore/rsnapshot/
und dann dafür gesorgt, dass rsnapshot nur arbeitet, wenn die Platte auch angeschlossen ist:
no_create_root 1
Im Bereich Interval wird angegeben, wie viele Backups jeweils gespeichert werden sollen:
interval daily 7
interval weekly 4
interval monthly 6
Am Ende dieser Konfigurationsdatei können dann die Verzeichnisse (und auch Dateien sowie auszuschließende Dateien etc.) definiert werden, die in das Backup geschrieben werden:
backup /home/dirk/.evolution/ localhost/
backup /home/dirk/.mozilla/ localhost/
backup /home/dirk/.ssh/ localhost/
backup /home/dirk/MyPDA/ localhost/
backup /home/dirk/openvpn/ localhost/
backup /home/dirk/Dokumente/ localhost/
backup /home/dirk/Public/ localhost/
backup /home/dirk/Bilder/ localhost/
backup /home/dirk/Desktop/ localhost/
backup /home/dirk/Vorlagen/ localhost/
Der trailing Slash ist ebenso Pflicht wie die Angabe von localhost.
Ob man bei der Syntax etwas verbockt hat, zeigt ein
sudo rsnapshot configtest
Syntax OK sollte als Antwort kommen – oder die Zeilennummer mit dem Fehler.
Starten
Für den ersten Aufruf könnte man noch den Verbose Level in der Konfigurationsdatei höher einstellen, damit man nicht nur warten darf, sondern auch was sehen kann:
verbose 3
Per Hand gestartet mit
sudo rsnapshot daily
fängt das Programm nun an zu werkeln.
Da händisch anzustoßende Backups aber immer wieder in Vergessenheit geraten, sollten Backupjobs eigentlich über cron bzw. anacron gestartet werden. Zumindest war das meine Motivation bei der Installation von rsnapshot. Ich wählte für meinem Desktoprechner anacron – wer weiß, wann der läuft; anacron holt dann vergessene Jobs nach.
Hierzu wird im Ordner
/etc/cron.daily
mit Rootrechten eine Datei mit dem Namen rsnapshot angelegt,
sudo vi /etc/cron.daily/rsnapshot
die den folgenden Inhalt hat:
#!/bin/sh
/usr/bin/rsnapshot daily
Für die Verzeichnisse
/etc/cron.weekly
/etc/cron.monthly
wird der Vorgang wiederholt und der Aufruf von rsnapshot entsprechend angepasst.
Mit
sudo su –
nun in den Rootaccount gewechselt und
crontab -e
aufgerufen. Das startet nano als Editor, womit jeder zu Recht kommen sollte.
Hier wurden dann die Aufrufzeiten für die Backups eingetragen:
# m h dom mon dow command
30 8,12,18 * * * /usr/bin/rsnapshot daily
30 15 * * 0 /usr/bin/rsnapshot weekly
30 19 1 * * /usr/bin/rsnapshot monthly
Wichtig ist, dass zwischen daily, weekly und monthly zeitlich genug Platz ist, sollten die Jobs durch einen dummen Zufall sich an einem Tag „zeitlich kreuzen“ und sich so gegenseitig behindern. rsnapshot würde in einem solchen Fall einen der Jobs schlicht auslassen.
Die Wirkung des eigenen Eintrags in die crontab kann man auf dieser Seite gut testen: http://www.hxpi.com/cron_sandbox.php und so sicher stellen, dass man keinen Mist einträgt.
Das war’s.
Der erste Aufruf von rsnapshot nimmt etwas Zeit in Anspruch – danach rast das Backup meiner rund 200GB zu sichernden Daten in weniger als 3 Minuten durch, weil nur veränderte Dateien geschrieben werden. Alle anderen Dateien werden nur als Hardlinks angelegt. rsnapshot spart mit diesem Verfahren ziemlich Platz und ich kann unterbrechungsfrei weiter arbeiten.
Weiter: Nachtrag zum Thema „Wo ist denn nun meine weekly.0 Sicherung?“