Zum Inhalt

Plant Server-Sicherungen mit rsnapshot

Server Backups Server Backups

Mit rsnapshot könnt Ihr automatisch Sicherheitskopien Eures Ubuntu-Servers anlegen. Das Programm ist kostenfrei, quelloffen und zuverlässig. Das inkrementelle Speicherverfahren spart zudem Speicherplatz – nach einer vollständigen Erstsicherung werden nur noch geänderte Dateien gesichert.

Installation

Ihr solltet Euren Server in einen früheren Zustand zurückversetzen können, falls mal etwas schiefgeht. Installiert dazu rsnapshot einfach mit dem Befehl sudo apt install rsnapshot.


rsnapshot Konfiguration

Konfiguration

Rsnapshot wurde erfolgreich installiert! Konfiguriert nun den Speicherort der Sicherungsdateien, Sicherungsintervalle, Protokollierung, usw.

Schritt-für-Schritt-Anleitung

Sicherungsverzeichnis

Öffnet die rsnapshot-Konfigurationsdatei:

sudo vi /etc/rsnapshot.conf

Fügt die folgenden Zeilen hinzu oder passt sie an, um den Speicherort für die Server-Sicherungskopien festzulegen. Ersetzt dabei die Zeichenfolge $PATH durch den Pfad zum eigentlichen Sicherungs-Verzeichnis. Dieses kann sich direkt auf der Festplatte des Servers, auf einem mit dem Server verbundenen externen Laufwerk oder an einem Remote-Speicherort befinden. Setzt auch das Attribut no_create_root, um zu verhindern, dass rsnapshot automatisch ein Sicherungs-Verzeichnis erstellt:

snapshot_root   $PATH
no_create_root  1

Abhängigkeiten

Kommentiert die folgenden Zeilen in der rsnapshot-Konfigurationsdatei /etc/rsnapshot.conf aus, um externe Abhängigkeiten anzugeben:

cmd_rsync           /usr/bin/rsync
cmd_du              /usr/bin/du
cmd_rsnapshot_diff  /usr/bin/rsnapshot-diff
Führt die folgenden Befehle aus, um sicherzustellen, dass rsnapshot auf die richtigen Binärdateien verweist. Überprüft, ob alle Pfade korrekt sind:

whereis rsync
whereis du
whereis rsnapshot-diff

Sicherungsintervalle

Die folgenden Einstellungen in der rsnapshot-Konfigurationsdatei /etc/rsnapshot.conf legen fest, in welchen Abständen Sicherungskopien angelegt werden, und wie viele Sicherungskopien angelegt werden sollen. Dabei werden stündliche, tägliche, wöchentliche und monatliche Sicherungskopien unterstützt. Im folgenden Beispiel werden die 3 letzten täglichen Sicherungskopien, die 7 letzten wöchentlichen Sicherungskopien und die 2 letzten monatlichen Sicherungskopien aufbewahrt. Passt diese Einstellungen an Eure eigene Sicherungsstrategie an:

retain  daily   3
retain  weekly  6
retain  monthly 2

Protokollierung

Gegebenenfalls könnt Ihr die Protokollierung zu Debugging-Zwecken aktivieren. Erstellt dazu eine Protokolldatei:

sudo touch /var/log/rsnapshot.log

Aktiviert die Protokollierung in der rsnapshots-Konfigurationsdatei /etc/rsnapshot.conf:

verbose     5
loglevel    5
logfile     /var/log/rsnapshot.log

Datei-Sicherung

Ihr müsst festlegen, welche Serverdateien gesichert werden sollen. Gebt dazu in der Konfigurationsdatei ein oder mehrere Verzeichnisse an. Mit dem Attribut exclude könnt Ihr auch bestimmte Unterverzeichnisse ausschließen. Achtet darauf, für jedes Verzeichnis eine neue Zeile zu verwenden und am Ende jedes Verzeichnispfads ein abschließendes / hinzuzufügen. In folgenden Beispiel wird das gesamte Root-Dateisystem / gesichert, mit Ausnahme der Ordner tmp, proc, mnt und sys:

backup  /   .   exclude=tmp,exclude=proc,exclude=mnt,exclude=sys

Test

Der folgende Befehl prüft die Syntax der Konfigurationsdatei (das Terminal sollte Syntax OK anzeigen):

sudo rsnapshot configtest

Testet anschließend Eure stündlichen, täglichen, wöchentlichen oder monatlichen Sicherungsstrategien:

sudo rsnapshot -t hourly
sudo rsnapshot -t daily
sudo rsnapshot -t weekly
sudo rsnapshot -t monthly


rsnapshot geplante Sicherungskopien

Sicherungskopien planen

Plant automatische Sicherungskopien in festen Intervallen mit rsnapshot. Weitere Details findet Ihr unten.

Schritt-für-Schritt-Anleitung

Führt die kürzeste Sicherungsstrategie aus, um eine erste vollständige Sicherungskopie anzulegen. In unserem Beispiel ist das die tägliche Sicherung (passt dies entsprechend an):

sudo rsnapshot daily

Öffnet die cron-Konfigurationsdatei, um Sicherungskopien in bestimmten Abständen zu planen:

sudo vi /etc/cron.d/rsnapshot

Im folgenden Beispiel planen wir tägliche Sicherungskopien um 1:00 Uhr, wöchentliche Sicherungskopien jeden Montag um 18:30 Uhr und monatliche Sicherungskopien am zweiten Tag jedes Monats um 7:00 Uhr. Definiert je nach Bedarf Eure eigenen Zeitpläne, der crontab-Guru kann Euch dabei behilflich sein:

#0 */4 * * *    root    /usr/bin/rsnapshot hourly
0 1  * * *      root    /usr/bin/rsnapshot daily
30 18 * * 1     root    /usr/bin/rsnapshot weekly
0 7 2 * *       root    /usr/bin/rsnapshot monthly


rsnapshot Wiederherstellung

Sicherungskopien wiederherstellen

Sollte ein Problem auftreten, könnt Ihr Euren Server mithilfe einer der rsnapshot-Sicherungskopien in einen früheren Zustand zurückversetzen. Untenstehend findet Ihr weitere Details zum Thema.

Schritt-für-Schritt-Anleitung

Der folgende Befehl listet alle vorhandenen Sicherungskopien auf. Ersetzt die Zeichenfolge $PATH durch den Pfad zum Sicherungsverzeichnis, den Ihr eingangs festgelegt habt:

ls -l $PATH

Je nach Sicherungsstrategie könnte die Ausgabe in etwa folgendermaßen aussehen:

/path/to/rsnapshot/backup/folder/daily.0
/path/to/rsnapshot/backup/folder/daily.1
/path/to/rsnapshot/backup/folder/daily.2
/path/to/rsnapshot/backup/folder/weekly.0
/path/to/rsnapshot/backup/folder/weekly.1
/path/to/rsnapshot/backup/folder/weekly.2
/path/to/rsnapshot/backup/folder/weekly.3
/path/to/rsnapshot/backup/folder/weekly.4
/path/to/rsnapshot/backup/folder/weekly.5
/path/to/rsnapshot/backup/folder/monthly.0
/path/to/rsnapshot/backup/folder/monthly.1

Mit dem folgenden Befehl wird der Server in einen vorherigen Zustand zurückversetzt:

sudo rsync -avr $SOURCE_PATH $DESTINATION_PATH

Versichert Euch, dass Ihr den richtigen $SOURCE_PATH (d.h. das Sicherungs-Verzeichnis, das wiederhergestellt werden soll) und $DESTINATION_PATH (d.h. das Zielverzeichnis auf dem Server, in das die Sicherungskopie wiederhergestellt werden soll) angebt. Der folgende Befehl stellt zum Beispiel die wöchentliche Sicherungskopie des gesamten Dateisystems von vor 3 Wochen im Server-Stammverzeichnis / wieder her:

sudo rsync -avr /path/to/rsnapshot/backup/folder/weekly.3/ /

Vorsicht, Drachen!

Geht bei der Systemwiederherstellung äußerst vorsichtig vor, um unwiderrufliche Datenverluste zu vermeiden.