stalk me here ----> github twitter rss Feedback

Suchergebnis

Rsnapshot - Automatisierte Backups leicht gemacht

Artikel vom 03.10.2011, Bereich: linux-distributionen

Ich geb’s ja zu! Ich habe bisher höchstens manuelle Backups gemacht. Wiederkehrende Erfahrungen mit kaputten Festplatten, versehentlich gelöschten Daten oder verschlimmbesserten Konfigurationsdateien haben mich dann aber doch motiviert, mich etwas intensiver mit der Thematik zu befassen. Und es kann tatsächlich so einfach sein: In meinem Fall heißt die Antwort rsnapshot - ein kleines Shelltool, mit dem man regelmäßige Backups machen kann.

Vorausgehende Fragen (und Antworten)

Wer sich mit Backups beschäftigt, sollte einige Fragen vorausschicken, damit ein sinnvolles Backupsystem entsteht:

Wohin sollen meine Daten gespeichert werden?

Hier bietet sich natürlich an, eine logisch und physikalisch vom normalen System getrennte Festplatte zu wählen. Mit rsnapshot ist aber beispielsweise auch ein Backup per SSH auf einem entfernten Server möglich.

Was will ich backupen?

In meinem Fall: * /home-Verzeichnis * /etc und /var für die Einstellungen * /usr für lokal installierte Programme * /boot für die Bootinformationen

Wie oft will ich meine Daten backupen?

Ich habe dazu ein Script geschrieben (dazu unten mehr), welches als Cronjob täglich und monatlich aufgerufen wird. Außerdem habe ich rsnapshot so eingestellt, dass nach 5 Tagen bzw. 3 Monaten die Daten wieder überschrieben werden.

Besonders wichtig: Wie werden die Daten später wiederhergestellt?

Im Falle von rsnapshot kann man sie einfach aus dem Backupverzeichnis kopieren.

Warum rsnapshot?

Auf der Suche nach einem unkomplizierten und möglichst schlanken Backuptool, bin ich auf rsnapshot gestoßen. Wie viele Backuptools, verwendet Rsnapshot das altbewährte rsync für Backups. Eine Besonderheit von rsnapshot ist, dass nur beim ersten Mal eine komplette Kopie der Daten erfolgt. Anschließend werden nur noch diejenigen Dateien kopiert, die sich geändert haben, für alle Anderen werden Hardlinks zum ersten Backup gesetzt. Das spart natürlich Platz und wirkt sich auch deutlich positiv auf die Laufzeit der nachfolgenden Backups aus. Die Dateien werden unkomprimiert in der selben Verzeichnisstruktur wie auf dem eigentlichen System abgelegt, was die Wiederherstellung einzelner Dateien natürlich erleichtert. Ich denke auf Desktopsystemen reicht es auch, eine Kopie der aktuellen Datei zu haben,  auf Serversystemen, auf denen Datensicherheit besonders wichtig ist, muss man sich natürlich überlegen, ob man nicht lieber zu einem Tool greifen möchte, das jedes Mal “komplette” Backups anlegt.

Rsnapshot konfigurieren

Die Konfigurationsdatei (Standard: /etc/rsnapshot.conf) ist gut kommentiert und schnell angepasst. Im Wesentlichen müssen hier nur ein Zielverzeichnis (snapshot_root), die Backuppoints (Verzeichnisse, die gespeichert werden sollen) und eventuelle Ausnahmen (exclude-Anweisungen) festgelegt werden. Außerdem sollte man auswählen, welche in Zeiträumen (und wie lange) die Daten gesichert werden sollen. Danach kann das Backup schon mittels z.B. rsnapshot -t daily getestet und mit rsnapshot -v daily durchgeführt werden!

Rsnapshot Backupscript (Backup auf gesonderte Platte)

Ich habe mir ein kleines Script geschrieben, damit meine Backuppartition (die ich zuvor in /etc/fstab eingetragen habe) automatisch gemountet wird und ich entsprechende Notifications über das Backup in Gnome bekomme. Außerdem erstellt das Script anschließen immer eine Liste der installierten Pakete (Pacman / Archlinux). Ich habe dieses Script unter /etc/cron.daily sowie (in angepasster Form) nach /etc/cron.monthly gepackt, damit regelmäßige Backups abgelegt werden können. Falls Fehler beim Backup auftreten, werden diese auf der Backupplatte in einer errors.log gespeichert und es erscheint passende Benachrichtigung auf dem Desktop.

Wer Interesse hat, darf das Script natürlich nach Belieben an die eigenen Bedürfnisse anpassen:

Garantie, dass das Script immer funktioniert, gibt’s natürlich nicht - Verbesserungsvorschläge sind immer willkommen! ;)