Backups unter Linux mit rsnapshot

rsnapshot

Heute habe ich auf Arbeit das Backup-System für unsere Linux-Server neu aufgesetzt und wollte euch nun das geniale Tool rsnapshot vorstellen, mit dem wir unsere Backups fahren. Mit rsnapshot kann man in kürzester Zeit ein performantes Backup-System einrichten, mit dem man sogar via Netzwerk oder Internet andere Linux-Server per rsync und SSH sichern kann (so kommt rsnapshot bei uns zum Einsatz). rsnapshot arbeitet hierbei wie folgt: bei der ersten Sicherung werden alle angegebenen Daten einmal kopiert, alle darauffolgenden Backups enthalten nur veränderte Daten. Die alten Daten werden über Hardlinks so verknüpft, dass sich jedes einzelne Backup wie eine Vollsicherung nutzen lässt. Das spart Zeit und Netzwerk-Traffic.

Installation von rsnapshot

Auf dem Backup-Server muss zunächst das Paket rsnapshot installiert werden. Unter Ubuntu und anderen Debian-basierten Linux-Systemen kann man es wie folgt installieren

aptitude install rsnapshot

Möchte man auch entfernte Linux-Rechner (im folgenden Clients genannt) sichern, muss auf diesen die Pakete SSH und rsync installieren. Das geschieht äquivalent zu dem obigen Befehl mit

aptitude install ssh rsync

Einrichtung der Clients

Wenn ihr andere Linux-Rechner über das Netzwerk sichern möchtet, müsst ihr zunächst eine schlüsselbasierte Authentifizierung einrichten. Hierbei empfiehlt es sich, auf allen Rechnern den Benutzer root für die schlüsselbasierte Authentifizierung einzurichten, da es bei der Sicherung zu Berechtigungsproblemen mit anderen Benutzern kommen kann.

Einrichtung von rsnapshot

rsnapshot wird durch eine einzige Textdatei konfiguriert, die üblicherweise unter /etc/rsnapshot.conf zu finden ist. Zum Anpassen der Datei öffnet man die Datei zum Beispiel mit dem Texteditor nano:

nano /etc/rsnapshot.conf

Zunächst einmal passt man den Ordner an, in den die Backups später geschrieben werden sollen. Dazu passt man die Einstellung snapshot_root an. Sollen die Backups zum Beispiel unter /backups zu finden sein, trägt man hier ein

snapshot_root /backups/

Danach passt man die einzelnen Werte zur Vorhaltung von Backups an. Die Einträge

interval daily 7
interval weekly 4
interval monthly 6

geben zum Beispiel an, dass 7 tägliche, 4 wöchentliche und 6 monatliche Backups erhalten werden sollen, bis die ältesten gelöscht werden.

Weiter unten in der Datei richtet man dann die zu sichernden Verzeichnisse ein. Um zum Beispiel die Verzeichnisse /etc und /home des lokalen Servers zu sichern, fügt man folgende Zeilen hinzu:

backup /etc/ localhost/
backup /home/ localhost/

Weitaus interessanter ist aber das Sichern über das Netzwerk. Hierzu trägt man zum Beispiel folgendes ein, um den Ordner /home des Linux-Rechners somehost zu sichern:

backup root@somehost:/home/ somehost/

Hierbei würde nun eine SSH-Verbindung über den Benutzer root der anderen Maschine hergestellt und dann der Ordner /etc des anderen Rechners per rsync gesichert werden.

Zum Schluss müssen noch ein oder mehrere cronjobs für die Ausführung der Sicherung angelegt werden. Diese schreibt man in die Datei /etc/crontab

nano /etc/crontab

Um zum Beispiel jeden Tag um 00:00 die Sicherung auszuführen, müsste man folgende Zeile hinzufügen:

0 0 * * * root rsnapshot daily

Eine ausführliche Anleitung zum Erstellen von crontabs findest du auf dieser Seite. Wichtig hierbei ist, dass du den Parameter daily, weekly oder monthly hinter den rsnapshot-Befehl schreibst, damit die jeweils gewünschte Sicherung ausgeführt wird.

Konfiguration testen und erster Durchlauf

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

rsnapshot configtest

ein. Etwaige Fehler wird dir das Programm sofort anzeigen. Um einen ersten Testlauf zu starten, gibst du zum Beispiel

rsnapshot daily

ein und die Sicherung wird gestartet.

Weiterführende Links

Wenn du mehr über die Konfiguration von rsnapshot erfahren möchtest, findest du hier eine ausführliche Dokumentation zur Konfiguration von rsnapshot.

Kommentare

  1. Jeffrey sagt:

    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.

Hinterlasse einen Kommentar