Website-Suche

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.

  1. 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.

  1. 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:

  1. So sichern/synchronisieren Sie Verzeichnisse mit dem Rsync-Tool (Remote Sync).
  2. 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:

  1. config_version 1.2=Version der Konfigurationsdatei
  2. snapshot_root=Backup-Ziel zum Speichern von Snapshots
  3. cmd_cp=Pfad zum Kopierbefehl
  4. cmd_rm=Pfad zum Entfernen des Befehls
  5. cmd_rsync=Pfad zu rsync
  6. cmd_ssh=Pfad zu SSH
  7. cmd_logger=Pfad zur Shell-Befehlsschnittstelle zum Syslog
  8. cmd_du=Pfad zum Befehl zur Festplattennutzung
  9. Intervall stündlich=Wie viele stündliche Backups aufbewahrt werden sollen.
  10. Intervall täglich=Wie viele tägliche Backups aufbewahrt werden sollen.
  11. Intervall wöchentlich=Wie viele wöchentliche Backups aufbewahrt werden sollen.
  12. Intervall monatlich=Wie viele monatliche Backups aufbewahrt werden sollen.
  13. ssh_args=Optionale SSH-Argumente, z. B. ein anderer Port (-p)
  14. verbose=Selbsterklärend
  15. loglevel=Selbsterklärend
  16. logfile=Pfad zur Protokolldatei
  17. exclude_file=Pfad zur Ausschlussdatei (wird genauer erklärt)
  18. rsync_long_args=Lange Argumente zur Übergabe an rsync
  19. lockfile=Selbsterklärend
  20. 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:

  1. Wird alle 4 Stunden ausgeführt und erstellt ein stündliches Verzeichnis im Verzeichnis /backup.
  2. Läuft täglich um 3:30 Uhr und erstellt ein Verzeichnis täglich im Verzeichnis /backup.
  3. Wird wöchentlich jeden Montag um 3:00 Uhr ausgeführt und erstellt ein wöchentliches Verzeichnis unter /backup-Verzeichnis.
  4. 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.

  1. 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

  1. 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.