Zum Inhalt

Plant Server-Sicherungen mit rsnapshot

Letzte Aktualisierung: Mai 2022. Für fortgeschrittene BenutzerInnen. Solide technische Kenntnisse erforderlich.

Server Backups

rsnapshot ist ein Programm zur Planung von Sicherungskopien Eures Ubuntu-Servers. Es ist frei und quelloffen, zuverlässig und ressourcenarm. Der geringe Speicherbedarf ist darauf zurückzuführen, dass rsnapshot inkrementelle Sicherungen durchführt: Nach einer ersten vollständigen Sicherungskopie werden nur noch geänderte Dateien gesichert.


rsnapshot Installation

Installation

Falls mal was schiefgehen sollte, ist es hilfreich den Server wieder in einen vorherigen Zustand zurückversetzen zu können. Installiert dazu rsnapshot mit dem Befehl sudo apt install rsnapshot auf Eurem Server.


rsnapshot Konfiguration

Konfiguration

Nach der erfolgreichen Installation von rsnapshot sind eine Reihe von Einstellungen vorzunehmen: Speicherort der Sicherungsdateien, externe Abhängigkeiten, Sicherungsintervalle, Protokollierung, usw. Untenstehend findet Ihr eine ausführliche Anleitung.

Hier geht's zur 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

Geplante Sicherungskopien

Mit rsnapshot könnt Ihr automatisch Sicherungskopien in bestimmten Abständen planen. Untenstehend findet Ihr eine ausführliche Anleitung.

Hier geht's zur 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

Wiederherstellung

Sollte mal was schief gehen, könnt Ihr unter Umständen einen vorherigen Zustand des Servers wiederherstellen, indem Ihr eine der rsnapshot-Sicherungskopien wiederherstellt. Untenstehend findet Ihr eine ausführliche Anleitung.

Hier geht's zur 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!

Seid bei der Systemwiederherstellung äußerst vorsichtig. Daten können unwiderruflich überschrieben oder für immer verloren werden.