Wie man Rsnapshot zur Sicherung und Wiederherstellung auf Linux-Servern verwendet
rsnapshot ist ein Sicherungsprogramm für Linux-basierte Rechner. Es ist für die meisten Linux-Distributionen verfügbar und kann einfach über den Paketmanager installiert werden. rsnapshot ist in Perl geschrieben und unterstützt lokale und entfernte Backups.
Mit rsnapshot kannst du ein Backup deines lokalen Verzeichnisses erstellen. Für das Remote-Backup nutzt rsnapshot „ssh“ und „rsync“.
In diesem Lernprogramm lernst du, wie du mit Rsnapshot auf einem Linux-Server Backups erstellst und wiederherstellst. Du richtest rsnapshot für lokale Backups und Remote-Backups ein. Außerdem lernst du, wie du ein automatisches Backup mit rsnapshot und cron einrichtest.
Voraussetzungen
Um diese Anleitung durchzuarbeiten, solltest du folgende Voraussetzungen erfüllen:
- Einen Linux-Server wie Debian, Ubuntu, CentOS oder eine andere Distribution
- Einen Nicht-Root-Benutzer mit Administrator-Rechten
- Optional einen weiteren Server, um das Remote-Backup zu testen
Installation von rsnapshot
rsnapshot ist ein Sicherungsprogramm, das auf den meisten Linux-Distributionen verfügbar ist. Du kannst es über den jeweiligen Paketmanager installieren. In diesem Abschnitt wirst du rsnapshot auf dem Debian-Server installieren. Wenn du also eine andere Distribution verwendest, installiere es mit deinem aktuellen Paketmanager.
Aktualisiere zunächst deinen Paketindex mit dem folgenden Befehl. In diesem Beispiel verwenden wir Debian, du kannst aber auch Debian-basierte Distributionen wie Ubuntu, Linux Mint usw. verwenden.
sudo apt update
Nach der Aktualisierung führst du den folgenden Befehl aus, um das Paket„rsnapshot“ zu installieren. Gib„Y“ ein, um die Installation zu bestätigen.
sudo apt install rsnapshot
Nachdem die Installation abgeschlossen ist, überprüfe den Speicherort und die Version von„rsnapshot„.
which rsnapshot rsnapshot --version
Wie du unten sehen kannst, ist Rsnapshot 1.4 im Verzeichnis„/usr/bin/rsnapshot“ installiert.
Konfigurieren der SSH-Schlüsselauthentifizierung
Wenn du ein Remote-Backup durchführst, musst du sicherstellen, dass sich dein rsnapshot-Server mit der SSH-Schlüsselauthentifizierung beim Zielserver anmelden kann. Für ein Remote-Backup brauchst du also Folgendes:
- Einen Benutzer, mit dem du dich beim Zielserver anmelden kannst
- Die SSH-Schlüssel-Authentifizierung ist aktiviert.
In diesem Abschnitt erzeugst du einen SSH-Schlüssel auf dem rsnapshot-Server. Anschließend kopierst du den öffentlichen SSH-Schlüssel mit dem Benutzer„alice“ auf den Zielserver unter„192.168.10.41„.
Erzeuge auf dem „rsnapshot“-Server den öffentlichen und den privaten SSH-Schlüssel mit dem unten stehenden Befehl„ssh-keygen„. Drücke „ENTER“, wenn du nach dem Standortschlüssel und dem Passwort gefragt wirst.
ssh-keygen -t ed25519
Führe nun den Befehl„ssh-copy-id“ aus, um den öffentlichen SSH-Schlüssel auf deinen Zielserver hochzuladen. In diesem Beispiel machst du ein Remote-Backup vom Server„192.168.10.41“ mit der schlüsselbasierten SSH-Authentifizierung und mit dem Benutzer„alice„.
ssh-copy-id alice@192.168.10.41
Gib dein Passwort ein, wenn du dazu aufgefordert wirst.
Sobald der öffentliche SSH-Schlüssel hochgeladen ist, kannst du Rsnapshot einrichten.
rsnapshot konfigurieren
In diesem Abschnitt konfigurierst du rsnapshot sowohl für lokale als auch für Remote-Backups. Du änderst die Standardkonfiguration„/etc/rsnapshot.conf„, richtest das Standard-Backup-Verzeichnis ein, aktivierst die Integration mit SSH und Rsync, richtest ein Intervall-Backup ein und konfigurierst dann das lokale und das Remote-Backup.
Kopiere die rsnapshot-Standardkonfiguration„/etc/rsnapshot.conf“ und ändere die Datei mit dem Editor„nano“ oder„vim„.
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.orig sudo nano /etc/rsnapshot.conf
Ersetze das Standardverzeichnis„snapshot_root“ durch ein neues Verzeichnis. Dieses Verzeichnis wird zum Speichern deiner Backup-Daten verwendet.
snapshot_root /data/backup/
Entferne die Kommentare in den Optionen„cmd_rsync“ und„cmd_ssh„, um die Fernsicherung mit rsync über SSH zu aktivieren.
cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh
Ändere die Standard-Backup-Level oder -Intervalle wie folgt. Die Namensgebung ist optional, du kannst sie nach Bedarf ändern. In diesem Beispiel werden mit‚daily 6‚ Backup-Verzeichnisse mit den Namen‚daily.0‚ bis‚daily.5‚ erstellt.
HINWEIS: Verwende ein TAB anstelle eines Leerzeichens, da dies zu einem Fehler führt.
retain daily 6 retain weekly 7 retain monthly 4
Entferne den Haken bei der Option„logfile„, um ein rsnapshot-Protokoll in die Datei zu schreiben.
logfile /var/log/rsnapshot.log
Wenn du einen Remote-Server mit einem benutzerdefinierten SSH-Port betreibst, entkommentiere die Option„ssh_args“ und ändere den Port.
ssh_args -p 22
Für das lokale Backup kannst du die Konfiguration wie folgt verwenden. In diesem Beispiel sichern wir das lokale Verzeichnis„/home/arvdl“ imVerzeichnis „local„. Der Zielpfad sollte ein relativer Pfad sein, das heißt„/srv/backup/name-interval/local„.
backup /home/arvdl/ local
Für das Remote-Backup über SSH und rsync musst du die Konfiguration wie folgt vornehmen. In diesem Beispiel sichern wir die Verzeichnisse„/etc“ und„/var/www“ vom Remote-Server„192.168.10.41“ mit dem SSH-Benutzer„alice“ in das Verzeichnis„server1“ mit relativem Pfad.
backup alice@192.168.10.41:/etc/ server1 backup alice@192.168.10.41:/var/www server1
Speichere und beende die Datei, wenn du fertig bist.
Nachdem du rsnapshot konfiguriert hast, überprüfe und teste die rsnapshot-Konfiguration mit den folgenden Schritten. Wenn du sie richtig konfiguriert hast, siehst du die Ausgabe„Syntax OK„.
rsnapshot configtest
Manuelles Testen der rsnapshot-Sicherung
Jetzt, wo du rsnapshot konfiguriert hast, kannst du dein Backup mit rsnapshot überprüfen und testen, indem du das Backup manuell ausführst und das Backup-Verzeichnis und die rsnapshot-Logdatei überprüfst.
Um dein Backup manuell zu testen, führe den unten stehenden Befehl „rsnapshot“ aus. Achte darauf, dass du„daily“ durch den Namen deines Backups ersetzt.
rsnapshot daily
Wenn der Prozess abgeschlossen ist, überprüfe das Sicherungsverzeichnis„/srv/backup“ mit dem folgenden Befehl. Du wirst ein neues Backup-Verzeichnis„daily.0“ sehen, das deine Backup-Dateien von lokalen und entfernten Servern enthält.
ls /srv/backup/
Führe nun den folgenden Befehl aus, um die Festplattennutzung durch rsnapshot zu überprüfen.
rsnapshot du
In der unten stehenden Ausgabe siehst du, dass die gesamte Festplattennutzung für das rsnapshot-Backup 5 MB beträgt.
Überprüfe abschließend die Backup-Protokolldatei„/var/log/rsnapshot.log„, um den Backup-Prozess zu überprüfen.
cat /var/log/rsnapshot.log
Hier siehst du, dass die Sicherung erfolgreich war, allerdings mit einigen Warnungen, wie z.B. „Berechtigung verweigert“ beim Sichern der Datei„/etc/shadow„.
Automatisches Backup mit Cron
Für die automatische Sicherung kannst du rsnapshot mit Cron integrieren. Du richtest cron zum Beispiel für automatische Backups als„täglich„,„wöchentlich“ und„monatlich“ ein.
Öffne die Datei„/etc/cron.d/rsnapshot“ mit dem Editor „nano“. Diese Datei ist ein von rsnapshot generiertes Beispiel.
sudo nano /etc/cron.d/rsnapshot
Gib die folgende Konfiguration für die automatische Sicherung über rsnapshot ein. In diesem Beispiel wird das„tägliche“ Backup täglich ausgeführt, ebenso wie das„wöchentliche“ und das„monatliche“ innerhalb der jeweiligen Zeit.
0 0 * * * root rsnapshot daily 0 0 * * 0 root rsnapshot weekly 0 0 1 * * root rsnapshot monthly
Speichere die Datei und beende den Editor.
Damit wird dein automatisches Backup über cron ausgeführt.
Wiederherstellung des rsnapshot-Backups
Um das rsnapshot-Backup wiederherzustellen, musst du nur deine Daten aus dem Backup-Verzeichnis in dein Zielverzeichnis kopieren. In diesem Beispiel kannst du deine Daten aus dem Backup-Verzeichnis „/srv/backup“ kopieren.
Fazit
Herzlichen Glückwunsch! Du hast das Tutorial zur Installation von rsnapshot und zur Einrichtung von rsnapshot für lokale und Remote-Backups abgeschlossen und einige grundlegende „rsnapshot“-Befehle gelernt. Außerdem hast du gelernt, wie du ein automatisches Backup mit rsnapshot und cron einrichtest.