Backup

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?“