Rsnapshot (Rsync-basiert) – Ein lokales/Remote-Dateisystem-Backup-Dienstprogramm für Linux
rsnapshot ist ein Open-Source-Dienstprogramm zur lokalen/Remote-Dateisystemsicherung, das in der Perl-Sprache geschrieben wurde und die Leistungsfähigkeit von < nutztRsync- und SSH-Programm zum Erstellen geplanter inkrementeller Sicherungen von Linux/Unix-Dateisystemen, die nur den Speicherplatz beanspruchen Erstellen Sie ein einziges vollständiges Backup plus Unterschiede und bewahren Sie diese Backups auf einem lokalen Laufwerk auf einer anderen Festplatte oder einem externen USB-Stick auf , ein per NFS gemountetes Laufwerk oder einfach über das Netzwerk per SSH auf einen anderen Rechner übertragen.
In diesem Artikel wird gezeigt, wie Sie rsnapshot installieren, einrichten und verwenden, um inkrementelle stündliche, tägliche, wöchentliche und aktuelle Daten zu erstellen Starke monatliche lokale Backups sowie Remote-Backups. Um alle Schritte in diesem Artikel ausführen zu können, müssen Sie Root-Benutzer sein.
Schritt 1: Rsnapshot Backup unter Linux installieren
Die Installation von rsnapshot mit Yum und APT kann geringfügig abweichen, wenn Sie Red Hat und verwenden Debian-basierte Distributionen.
Auf RHEL/CentOS
Zuerst müssen Sie das Drittanbieter-Repository namens EPEL installieren und aktivieren. Bitte folgen Sie dem Link unten, um es unter Ihren RHEL/CentOS-Systemen zu installieren und zu aktivieren. Fedora-Benutzer benötigen keine speziellen Repository-Konfigurationen.
- Installieren und aktivieren Sie das EPEL-Repository in RHEL/CentOS 6/5/4
Sobald Sie alles eingerichtet haben, installieren Sie rsnapshot wie gezeigt über die Befehlszeile.
yum install rsnapshot
Auf Debian/Ubuntu/Linux Mint
Standardmäßig ist rsnapshot in den Repositorys von Ubuntu enthalten, sodass Sie es wie gezeigt mit dem Befehl apt-get installieren können.
apt-get install rsnapshot
Schritt 2: Einrichten der passwortlosen SSH-Anmeldung
Um Remote-Linux-Server zu sichern, kann Ihr rsnapshot-Sicherungsserver ohne Passwort eine Verbindung über SSH herstellen. Um dies zu erreichen, müssen Sie einen öffentlichen und privaten SSH-Schlüssel zur Authentifizierung auf dem rsnapshot-Server erstellen. Bitte folgen Sie dem folgenden Link, um einen öffentlichen und einen privaten Schlüssel auf Ihrem rsnapshot-Sicherungsserver zu generieren.
- Erstellen Sie eine passwortlose SSH-Anmeldung mit SSH Keygen
Schritt 3: Rsnapshot konfigurieren
Jetzt müssen Sie einige Parameter bearbeiten und zur Konfigurationsdatei rsnapshot hinzufügen. Öffnen Sie die Datei rsnapshot.conf mit dem Editor vi oder nano.
vi /etc/rsnapshot.conf
Erstellen Sie als Nächstes ein Backup-Verzeichnis, in dem Sie alle Ihre Backups speichern möchten. In meinem Fall ist mein Backup-Verzeichnis „/data/backup/“. Suchen Sie nach dem folgenden Parameter und bearbeiten Sie ihn, um den Sicherungsspeicherort festzulegen.
snapshot_root /data/backup/
Kommentieren Sie außerdem die Zeile „cmd_ssh“ aus, um Remote-Backups über SSH zu ermöglichen. Um die Zeile zu kommentieren, entfernen Sie das „#“ vor der folgenden Zeile, damit rsnapshot Ihre Daten sicher auf einen Backup-Server übertragen kann.
cmd_ssh /usr/bin/ssh
Als nächstes müssen Sie entscheiden, wie viele alte Backups Sie behalten möchten, da rsnapshot keine Ahnung hatte, wie oft Sie Snapshots erstellen möchten. Sie müssen angeben, wie viele Daten gespeichert werden sollen, welche Intervalle aufbewahrt werden sollen und wie viele davon jeweils angegeben werden sollen.
Nun, die Standardeinstellungen sind gut genug, aber ich möchte trotzdem, dass Sie das Intervall „monatlich“ aktivieren, damit Sie auch längerfristige Backups haben können. Bitte bearbeiten Sie diesen Abschnitt so, dass er den folgenden Einstellungen ähnelt.
#########################################
BACKUP INTERVALS #
Must be unique and in ascending order #
i.e. hourly, daily, weekly, etc. #
#########################################
interval hourly 6
interval daily 7
interval weekly 4
interval monthly 3
Eine weitere Sache, die Sie bearbeiten müssen, ist die Variable „ssh_args“. Wenn Sie den Standard-SSH-Port (22) in einen anderen geändert haben, müssen Sie die Portnummer Ihres Remote-Backup-Servers angeben.
ssh_args -p 7851
Fügen Sie abschließend Ihre lokalen und Remote-Sicherungsverzeichnisse hinzu, die Sie sichern möchten.
Lokale Verzeichnisse sichern
Wenn Sie sich entschieden haben, Ihre Verzeichnisse lokal auf demselben Computer zu sichern, würde der Sicherungseintrag so aussehen. Ich erstelle beispielsweise ein Backup meiner Verzeichnisse /tecmint und /etc.
backup /tecmint/ localhost/
backup /etc/ localhost/
Remote-Verzeichnisse sichern
Wenn Sie die Verzeichnisse eines Remote-Servers sichern möchten, müssen Sie dem rsnapshot mitteilen, wo sich der Server befindet und welche Verzeichnisse Sie sichern möchten. Hier erstelle ich eine Sicherung meines Remote-Server-Verzeichnisses „/home“ im Verzeichnis „/data/backup“ auf dem rsnapshot-Server.
backup [email :/home/ /data/backup/
Lesen Sie auch:
- So sichern/synchronisieren Sie Verzeichnisse mit dem Rsync-Tool (Remote Sync).
- So übertragen Sie Dateien/Ordner mit dem SCP-Befehl
Dateien und Verzeichnisse ausschließen
Hier schließe ich alles aus und definiere dann nur konkret, was ich sichern möchte. Dazu müssen Sie eine Ausschlussdatei erstellen.
vi /data/backup/tecmint.exclude
Rufen Sie zunächst die Liste der Verzeichnisse ab, die Sie sichern möchten, und fügen Sie ( – * ) hinzu, um alles andere auszuschließen. Dadurch wird nur das gesichert, was Sie in der Datei aufgeführt haben. Meine Ausschlussdatei sieht etwa so aus wie unten.
+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*
Die Verwendung der Option „Datei ausschließen“ kann aufgrund der Verwendung der rsync-Rekursion sehr schwierig sein. Daher ist mein obiges Beispiel möglicherweise nicht das, was Sie suchen. Als nächstes fügen Sie die Ausschlussdatei zur Datei rsnapshot.conf hinzu.
exclude_file /data/backup/tecmint.exclude
Schließlich sind Sie mit der Erstkonfiguration fast fertig. Speichern Sie die Konfigurationsdatei „/etc/rsnapshot.conf“, bevor Sie fortfahren. Es gibt viele Erklärungsmöglichkeiten, aber hier ist meine Beispielkonfigurationsdatei.
config_version 1.2
snapshot_root /data/backup/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
interval hourly 6
interval daily 7
interval weekly 4
interval monthly 3
ssh_args -p 25000
verbose 2
loglevel 4
logfile /var/log/rsnapshot/
exclude_file /data/backup/tecmint.exclude
rsync_long_args --delete --numeric-ids --delete-excluded
lockfile /var/run/rsnapshot.pid
backup /tecmint/ localhost/
backup /etc/ localhost/
backup [email :/home/ /data/backup/
Alle oben genannten Optionen und Argumenterklärungen lauten wie folgt:
- config_version 1.2=Version der Konfigurationsdatei
- snapshot_root=Backup-Ziel zum Speichern von Snapshots
- cmd_cp=Pfad zum Kopierbefehl
- cmd_rm=Pfad zum Entfernen des Befehls
- cmd_rsync=Pfad zu rsync
- cmd_ssh=Pfad zu SSH
- cmd_logger=Pfad zur Shell-Befehlsschnittstelle zum Syslog
- cmd_du=Pfad zum Befehl zur Festplattennutzung
- Intervall stündlich=Wie viele stündliche Backups aufbewahrt werden sollen.
- Intervall täglich=Wie viele tägliche Backups aufbewahrt werden sollen.
- Intervall wöchentlich=Wie viele wöchentliche Backups aufbewahrt werden sollen.
- Intervall monatlich=Wie viele monatliche Backups aufbewahrt werden sollen.
- ssh_args=Optionale SSH-Argumente, z. B. ein anderer Port (-p)
- verbose=Selbsterklärend
- loglevel=Selbsterklärend
- logfile=Pfad zur Protokolldatei
- exclude_file=Pfad zur Ausschlussdatei (wird genauer erklärt)
- rsync_long_args=Lange Argumente zur Übergabe an rsync
- lockfile=Selbsterklärend
- backup=Vollständiger Pfad zu dem zu sichernden Objekt, gefolgt vom relativen Platzierungspfad.
Schritt 4: Überprüfen Sie die Rsnapshot-Konfiguration
Sobald Sie mit der gesamten Konfiguration fertig sind, ist es an der Zeit zu überprüfen, ob alles wie erwartet funktioniert. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihre Konfiguration die richtige Syntax hat.
rsnapshot configtest
Syntax OK
Wenn alles richtig konfiguriert ist, erhalten Sie die Meldung „Syntax OK“. Wenn Sie Fehlermeldungen erhalten, müssen Sie diese Fehler beheben, bevor Sie rsnapshot ausführen.
Führen Sie als Nächstes einen Testlauf mit einem der Snapshots durch, um sicherzustellen, dass wir korrekte Ergebnisse generieren. Wir verwenden den Parameter „stündlich“, um einen Testlauf mit dem Argument -t (test) durchzuführen. Der folgende Befehl zeigt eine ausführliche Liste der Aktionen an, die er ausführen wird, ohne sie tatsächlich auszuführen.
rsnapshot -t hourly
Beispielausgabe
echo 2028 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /data/backup/
mkdir -m 0755 -p /data/backup/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
/backup/hourly.0/localhost/
mkdir -m 0755 -p /backup/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
/backup/hourly.0/localhost/
mkdir -m 0755 -p /data/backup/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
/usr/local /data/backup/hourly.0/localhost/
touch /data/backup/hourly.0/
Hinweis: Der obige Befehl weist rsnapshot an, eine „stündliche“ Sicherung zu erstellen. Es gibt tatsächlich die Befehle aus, die es ausführen wird, wenn wir es tatsächlich ausführen.
Schritt 5: Rsnapshot manuell ausführen
Nachdem Sie Ihre Ergebnisse überprüft haben, können Sie die Option „-t“ entfernen, um den Befehl tatsächlich auszuführen.
rsnapshot hourly
Der obige Befehl führt das Sicherungsskript mit der gesamten Konfiguration aus, die wir in der Datei rsnapshot.conf hinzugefügt haben, erstellt ein „backup“-Verzeichnis und erstellt dann die Verzeichnisstruktur darunter das unsere Dateien organisiert. Nachdem Sie den obigen Befehl ausgeführt haben, können Sie die Ergebnisse überprüfen, indem Sie zum Sicherungsverzeichnis gehen und die Verzeichnisstruktur mit dem Befehl ls -l wie gezeigt auflisten.
cd /data/backup
ls -l
total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0
Schritt 6: Automatisierung des Prozesses
Um den Prozess zu automatisieren, müssen Sie rsnapshot so planen, dass es in bestimmten Abständen von Cron ausgeführt wird. Standardmäßig wird rsnapshot mit einer cron-Datei unter „/etc/cron.d/rsnapshot geliefert. Wenn diese nicht vorhanden ist, erstellen Sie eine und Fügen Sie die folgenden Zeilen hinzu.
Standardmäßig sind Regeln kommentiert, daher müssen Sie das „#“ vor dem Planungsabschnitt entfernen, um diese Werte zu aktivieren.
This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.
0 */4 * * * root /usr/bin/rsnapshot hourly
30 3 * * * root /usr/bin/rsnapshot daily
0 3 * * 1 root /usr/bin/rsnapshot weekly
30 2 1 * * root /usr/bin/rsnapshot monthly
Lassen Sie mich genau erklären, was die oben genannten Cron-Regeln bewirken:
- Wird alle 4 Stunden ausgeführt und erstellt ein stündliches Verzeichnis im Verzeichnis /backup.
- Läuft täglich um 3:30 Uhr und erstellt ein Verzeichnis täglich im Verzeichnis /backup.
- Wird wöchentlich jeden Montag um 3:00 Uhr ausgeführt und erstellt ein wöchentliches Verzeichnis unter /backup-Verzeichnis.
- Wird jeden Monat um 2:30 Uhr ausgeführt und erstellt ein Monatsverzeichnis im Verzeichnis /backup.
Um besser zu verstehen, wie Cron-Regeln funktionieren, empfehle ich Ihnen, unseren Artikel zu lesen, der dies beschreibt.
- 11 Cron-Scheduling-Beispiele
Schritt 7: Rsnapshot-Berichte
Derrsnapshot stellt ein praktisches kleines Perl-Skript zur Berichterstellung bereit, das Ihnen eine E-Mail-Benachrichtigung mit allen Details darüber sendet, was während Ihrer Datensicherung passiert ist. Um dieses Skript einzurichten, müssen Sie das Skript irgendwo unter „/usr/local/bin“ kopieren und ausführbar machen.
cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
chmod +x /usr/local/bin/rsnapreport.pl
Fügen Sie als Nächstes den Parameter „–stats“ in Ihrer Datei „rsnapshot.conf“ zum Abschnitt mit den langen Argumenten von rsync hinzu.
vi /etc/rsnapshot.conf
rsync_long_args --stats --delete --numeric-ids --delete-excluded
Bearbeiten Sie nun die zuvor hinzugefügten crontab-Regeln und rufen Sie das Skript rsnapreport.pl auf, um die Berichte an die angegebene E-Mail-Adresse weiterzuleiten.
This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.
0 */4 * * * root /usr/bin/rsnapshot hourly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email
30 3 * * * root /usr/bin/rsnapshot daily 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email
0 3 * * 1 root /usr/bin/rsnapshot weekly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email
30 2 1 * * root /usr/bin/rsnapshot monthly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email
Sobald Sie die oben genannten Einträge korrekt hinzugefügt haben, erhalten Sie an Ihre E-Mail-Adresse einen Bericht ähnlich dem unten aufgeführten.
SOURCE TOTAL FILES FILES TRANS TOTAL MB MB TRANS LIST GEN TIME FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/ 185734 11853 2889.45 6179.18 40.661 second 0.000 seconds
Referenzlinks
- rsnapshot-Homepage
Das war's vorerst. Wenn während der Installation Probleme auftreten, schreiben Sie mir bitte einen Kommentar. Bleiben Sie bis dahin auf dem Laufenden bei TecMint für weitere interessante Artikel über die Open-Source-Welt.