Backups unter Linux mit rsnapshot

veröffentlicht am 14. Januar 2010

Heute möchte ich euch das Backup-Tool rsnapshot vorstellen, mit dem man komfortabel sowohl Daten auf dem lokalen als auch auf entfernen Linux-Servern sichern kann. rsnapshot arbeitet dabei recht platzsparend: bei der ersten Sicherung werden alle angegebenen Daten einmal kopiert, alle darauffolgenden Backups enthalten nur veränderte Daten. Unveränderte Daten werden über Hardlinks so verknüpft, dass sich jedes einzelne Backup wie eine Vollsicherung nutzen lässt. Dadurch kann man sehr intuitiv Daten wiederherstellen.

Installation von rsnapshot

Auf dem Backup-Server muss zunächst das Paket rsnapshot installiert werden. Bei apt-basierten Linux-Distributionen kann man es wie folgt installieren:

aptitude install rsnapshot

Sofern man auch entfernte Server via Netzwerk sichern möchte, müssen auf diesen SSH und rsync installiert werden:

aptitude install ssh rsync

Einrichtung der entfernten Server

Wenn ihr Server über das Netzwerk sichern möchtet, müsst ihr zunächst eine schlüsselbasierte Authentifizierung einrichten. Hierzu sollte der Benutzer root verwendet werden, da für den Zugriff auf viele Daten root-Rechte erforderlich sind.

Einrichtung von rsnapshot

rsnapshot wird über die Textdatei /etc/rsnapshot.conf konfiguriert. Zunächst passt man den Ordner an, in den die Backups geschrieben werden sollen:

snapshot_root /backup/

Danach definiert man beliebige Backup-Intervalle. Die Syntax hierfür lautet:

interval <Bezeichnung> <Anzahl aufzuhebender Backups>

So kann man z.B. den Backup-Intervall longterm anlegen, bei dem 30 Sicherungen aufbewahrt werden sollen:

interval longterm 30

Später beim Ausführen von rsnapshot muss der Bezeichner eines solchen Intervals als Parameter übergeben werden.

Am Ende der Konfigurationsdatei richtet man die zu sichernden Verzeichnisse ein. Um zum Beispiel das Verzeichnis /home des lokalen Servers zu sichern, fügt man folgende Zeile hinzu:

backup /home/ localhost/

Weitaus interessanter ist aber die Sicherung via Netzwerk. Hierzu trägt man zum Beispiel folgendes ein, um den Ordner /etc des Linux-Rechners somehost zu sichern:

backup root@somehost:/etc/ somehost/

Zum Schluss muss noch mindestens ein Cronjob für die Ausführung der Sicherung angelegt werden. Diesen definiert man in der Datei /etc/crontab. Soll z.B. der Backup-Intervall longterm immer um 00:00 Uhr durchgeführt werden, muss man folgende Zeile hinzufügen:

0 0 * * * root rsnapshot longterm

Bei der Einrichtung eines cronjobs hilft dir diese ausführliche Anleitung zum Erstellen von cronjobs.

Konfiguration und Backup testen

Um die Konfigurationsdatei auf Fehler hin zu überprüfen, gibst du den Befehl

rsnapshot configtest

ein. Etwaige Fehler wird dir das Programm sofort anzeigen. Danach solltest du ein ersten Backup starten und überprüfen, ob die Sicherung richtig funktioniert. Für den oben genannten Backup-Intervall longterm gibst du z.B. folgendes ein:

rsnapshot longterm

Schlussbemerkung

Ich habe in diesem Kapitel nur die wichtigsten Konfigurationen beschrieben. Die Konfigurationsdatei bietet viele weitere Einstellungen, die sehr gut dokumentiert sind.

Kommentare

Und noch eine super Anleitung von dir, vielen Dank!

Aktuell mache ich die Backups noch lokal auf dem vServer, werde am WE aber dann die schlüssel-basierende Authentifizierung einrichten, damit ich die Backups auf dem NAS speichern kann.

Kommentar #1 von Jeffrey am 06. Juni 2010


Pingback #2 von cronjob? - Linux: Linux-Forum am 22. Februar 2011


Pingback #3 von cronjob? - Linux: Linux-Forum am 22. Februar 2011


Kann rsnapshot inzwischen Deduplication? Was ich so finden kann, wird nur empfohlen, separat freedup laufen zu lassen.

Ich benutze Backuppc, das ist auch in Debian/Ubuntu, kann rsync oder tar benutzen, wahlweise über rsh, ssh oder rsyncd, kommt sehr gut mit Laptops etc. zurecht, die nicht immer am Netzwerk hängen, hat eine nette Weboberfläche und hat vor allem Deduplication eingebaut. Die Konfiguration ist sicher etwas aufwändiger als rsnapshot, aber Backuppc ist auch wesentlich mächtiger.

Kommentar #4 von Fabian Ritzmann am 13. Mai 2011


Du meinst mit Deduplication, dass doppelt/mehrfach vorhandene Dateien (egal in welchem Pfad) nur einmal Speicherplatz einnehmen?

Kommentar #5 von Patrick am 13. Mai 2011


Ja, egal in welchem Pfad und in welchem inkrementellen Backup. Backuppc findet sogar identische Dateien mit unterschiedlichem Namen und legt sie nur einmal ab.

Kommentar #6 von Fabian Ritzmann am 13. Mai 2011


Hmm ok. Nice to have, aber in meinem Fall lohnt sich der Aufwand nicht. Wenn man auf Bänder sichert und der Platz rar ist, ist das sicherlich eine gute Möglichkeit, den Platzverbrauch zu drücken.

Kommentar #7 von Patrick am 13. Mai 2011


Nur um das deutlich zu machen, Deduplication geht praktisch nur auf der Festplatte. Bänder mit dem seriellen Lesen/Schreiben taugen dafür nicht.

Ich find’s praktisch. Hatte schon mehr als einmal den Fall, wo ich eine Datei von vor ein paar Monaten zurückholen musste.

Ein nettes Feature ist auch, dass Backuppc jede Woche ein volles Backup macht und die Tage dazwischen inkrementelle. Durch die Deduplication braucht das volle Backup trotzdem nicht mehr Platz. Unter der Haube funktioniert das übrigens ganz ähnlich wie rsnapshot mit Hardlinks.

Kommentar #8 von Fabian Ritzmann am 13. Mai 2011


Tipp: Ich habe rsnapshot seit einiger Zeit auf meinem QNAP NAS laufen um automatisch Backups auf eine USB Platte zu machen. Genial!

Kommentar #9 von Guido Zockoll am 29. Juli 2012


Hinterlasse einen Kommentar