Backups unter Linux mit 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.
14.01.2010

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.