GNU/Linux >> LINUX-Kenntnisse >  >> AlmaLinux

So richten Sie einen Sicherungsserver mit Rsnapshot unter Linux ein

Diese Anleitung erklärt, was Rsnapshot ist, wie man Rsnapshot unter Linux installiert und wie man Backup-Server mit Rsnapshot unter Linux einrichtet.

1. Einführung

Schnappschuss ist ein Dateisystem-Snapshot-Dienstprogramm, das auf rsync basiert für Linux und Unix-ähnliche Betriebssysteme. Es ermöglicht Ihnen das einfache Erstellen regelmäßiger Snapshots von lokalen Computern und entfernten Computern über ssh.

Das Gute an rsnapshot ist, dass es ausgiebig Gebrauch von festen Links macht wann immer möglich, um den benötigten Speicherplatz stark zu reduzieren.

Da rsnapshot nur eine feste Anzahl von Snapshots speichert, wird der belegte Speicherplatz nicht kontinuierlich wachsen.

Rnapshot ist eine kostenlose Open-Source-Sicherungsanwendung, die inkrementelle Sicherungen unterstützt. Es ist vollständig in Perl geschrieben , und es sollte auf den meisten Unix-ähnlichen Systemen funktionieren.

Lassen Sie uns ohne weiteres weitermachen und sehen, wie man Backup-Server mit Rsnapshot unter Linux installiert, konfiguriert und einrichtet.

2. Rsnapshot unter Linux installieren

Rsnapshot ist für viele Linux-Distributionen gepackt.

Installieren Sie Rsnaphot unter Alpine Linux:

$ sudo apk add rsnapshot rsync

Installieren Sie Rsnapshot unter Arch Linux, EndeavourOS und Manjaro Linux:

$ sudo pacman -S rsnapshot rsync

Installieren Sie Rsnapshot unter Debian, Ubuntu, Linux Mint, Pop_OS!:

$ sudo apt install rsnapshot rsync

Installieren Sie Rsnapshot unter CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux:

Rsnapshot ist in den Standard-Repositories von Enterprise-Betriebssystemen wie CentOS, RHEL, AlmaLinux und Rocky Linux nicht verfügbar. Sie müssen [EPEL] aktivieren -Repository, um Rsnapshot zu installieren.

$ sudo dnf install epel-release

Installieren Sie dann Rsnapshot mit dem Befehl:

$ sudo dnf install rsnapshot rsync

Installieren Sie Rsnapshot in openSUSE:

$ sudo zypper install rsnapshot rsync

3. Backup-Server mit Rsnapshot unter Linux einrichten

Für die Zwecke dieses Leitfadens werde ich zwei Testsysteme verwenden.

Einer ist ein Backup-Server, der mit AlmaLinux 8 läuft, und ein anderer fungiert als Client-System. Der Client läuft mit Fedora 34 Desktop.

Die Details des Sicherungsservers und -clients sind unten angegeben.

Sicherungsserver:

  • Betriebssystem :AlmaLinux 8 64-Bit-Minimalsystem
  • IP-Adresse :192.168.122.25/24
  • Rsnapshot-Stammverzeichnis :/rsnapbackup
  • Zu sicherndes Verzeichnis :/home/ostechnix/data/

Kunde :

  • Betriebssystem :Fedora-Workstation 34
  • IP-Adresse :192.168.225.37/24
  • Zu sicherndes Verzeichnis :/home/sk/data/

3.1. Richten Sie die passwortlose SSH-Authentifizierung auf dem Backup-Server ein

Um Dateien eines Remote-Client-Systems über SSH zu sichern, müssen Sie passwortlose SSH-Authentifizierung einrichten für Remote-Client-Systeme, sodass sich Backup automatisch ohne Passwort mit dem Client-System verbindet und die Client-Daten sichert.

Melden Sie sich als root an Benutzer und erstellen Sie ein SSH-Schlüsselpaar in unserem Backup-Serversystem.

# ssh-keygen

Geben Sie keine Passphrase ein , weil wir möchten, dass diese Systeme ohne Benutzereingriff miteinander verbunden werden können:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|   o.==. o.      |
|  . =o.....      |
|   ... +.        |
|....+ o...       |
|.ooo.o oS.       |
| o.oo +.E+       |
| .o .*..o .      |
| +....ooo        |
|o..o===+..       |
+----[SHA256]-----+

Kopieren Sie als Nächstes den öffentlichen SSH-Schlüssel auf alle Remote-Client-Systeme.

# ssh-copy-id [email protected]

Ersetzen Sie sk und 192.168.225.37 im obigen Befehl mit dem Benutzernamen und der IP-Adresse Ihres Remote-Systems. Geben Sie Ihr Benutzerpasswort für das Client-System ein, um die öffentliche Schlüsseldatei zu kopieren:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Hier, 192.168.225.37 ist die IP-Adresse meines Remote-Client-Systems (z. B. Fedora Desktop).

Jetzt können Sie sich ohne Passwort per ssh in das Client-System einloggen.

Wiederholen Sie den obigen Befehl, um den öffentlichen ssh-Schlüssel auf alle Ihre Client-Systeme zu kopieren und die passwortlose Authentifizierung einzurichten.

Als nächstes müssen wir den Backup-Server konfigurieren.

3.2. Konfiguration des Rsnapshot-Sicherungsservers

Erstellen Sie ein Root-Backup-Verzeichnis um alle Backups Ihrer Server- und Client-Systeme zu speichern.

Für diesen Leitfaden verwende ich /rsnapbackup/ als Root-Backup-Verzeichnis. Es ist das Verzeichnis, in dem ich alle Backups speichern werde.

Sie können einen eigenen Speicherort Ihrer Wahl definieren, um die Backups zu speichern.

Lassen Sie uns das Root-Backup-Verzeichnis auf unserem Backup-Server mit dem Befehl erstellen:

# mkdir /rsnapbackup

Als Nächstes müssen wir das Root-Sicherungsverzeichnis, die zu sichernden Verzeichnisse und die Sicherungsintervalle in der Rsnapshot-Standardkonfigurationsdatei /etc/rsnapshot.conf bearbeiten und aktualisieren .

Vor dem Bearbeiten der Konfiguration wird immer empfohlen, eine Sicherungskopie der Standard-Konfigurationsdatei zu erstellen, falls Sie rsnapshot erneut konfigurieren müssen.

# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak

Bearbeiten Sie nun die rsnapshot-Konfigurationsdatei mit dem Befehl:

# nano /etc/rsnapshot.conf

Die Standardkonfiguration sollte einfach funktionieren. Sie müssen lediglich die Backup-Verzeichnisse und Backup-Intervalle definieren.

Vorsicht: Bitte beachten Sie, dass Sie einen nachgestellten Schrägstrich angeben sollten am Ende der Verzeichnisnamen in /etc/rsnapshot.conf Datei. Angenommen, Sie müssen den Verzeichnisnamen als /rsnapbackup/ angeben , aber nicht /rsnapbackup . Außerdem müssen Sie Tabulatoren (keine Leerzeichen) zwischen Elementen/Feldern verwenden .

Lassen Sie uns zuerst das Root-Backup-Verzeichnis einrichten, d. h. das Verzeichnis definieren, in dem wir die Dateisystem-Backups speichern möchten. In unserem Fall speichere ich die Sicherungen in /rsnapbackup/ Verzeichnis.

# All snapshots will be stored under this root directory.
#
snapshot_root   /rsnapbackup/

Auch hier sollten Sie die TAB-Taste verwenden zwischen snapshot_root -Element und Ihr Backup-Verzeichnis.

Hinweis: Rsnapshot nicht unterstützt ein Remote-Snapshot-Root über SSH.

Scrollen Sie etwas nach unten und vergewissern Sie sich, dass die folgenden Zeilen (fett markiert) unkommentiert sind:

[...]
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /usr/bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /usr/bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh

# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger

# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
cmd_du /usr/bin/du

[...]

Als nächstes müssen wir die Backup-Intervalle definieren:

#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################

retain alpha 6
retain beta 7
retain gamma 4
#retain delta 3

Hier behalten Sie Alpha 6 bei bedeutet, dass jedes Mal rsnapshot alpha ausführen, erstellt es einen neuen Snapshot, rotiert die alten und bewahrt die letzten sechs Backups in den Verzeichnissen mit dem Namen alpha.0 auf , alpha.1 ,... alpha.5 im Rsnapshot-Stammverzeichnis. Dann wird beim nächsten Ausführen des Befehls der alpha.5 Verzeichnis wird gelöscht.

Ähnlich, wenn wir rsnapshot beta aufrufen Jedes Mal wird ein neuer Snapshot erstellt, alte rotiert und die letzten 7 Backups (Delta.0–Delta.6) beibehalten

Bitte beachten Sie, dass der alpha , beta , gamma und delta sind nur die Namen, um die Sicherungsintervalle zu definieren. Sie können auch eigene Intervalle definieren.

Beispielsweise können Sie die Standard-Sicherungsstufen durch aussagekräftige Namen Ihrer Wahl ersetzen, wie unten:

retain  hourly  24
retain  daily   7
retain  weekly  4
retain  monthly 12

Wenn wir rnsapshot hourly aufrufen , wird ein neues Backup in <rsnapshot-root>/hourly.0/ erstellt Verzeichnis. Wenn Sie diesen Befehl jedes Mal ausführen, werden neue Verzeichnisse bis zu <rsnapshot-root>/hourly.23/ erstellt .

Dies gilt für tägliche, wöchentliche und monatliche Backups.

Kommentieren Sie als Nächstes die folgende Zeile aus, wenn Sie die Protokolldatei für Rsnapshot festlegen möchten:

logfile /var/log/rsnapshot

Wenn Sie den SSH-Standardport geändert haben , müssen Sie diese Zeile auskommentieren und hier die gültige Portnummer angeben:

ssh_args -p 2222

Schließlich müssen Sie die Verzeichnisse definieren, die Sie sichern möchten. Suchen Sie die folgenden Anweisungen in Ihrer rsnapshot-Konfigurationsdatei und legen Sie die Sicherungsverzeichnisse fest.

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup /home/ostechnix/data/ myserverbackup/

Hier werde ich den Inhalt von /home/ostechnix/data/ Verzeichnis und speichern Sie sie unter /rsnapbackup/myserverbackup/ Verzeichnis.

Vorsicht: Bitte beachten Sie, dass ich nicht den vollständigen Pfad angegeben habe (d. h. /rsnapbackup/myserverbackup/ ) in der obigen Konfiguration. Denn wir haben das Root-Backup-Verzeichnis bereits früher erwähnt. Daher müssen wir hier kein Rsnapshot-Stammverzeichnis angeben.

Definieren Sie ebenso den Backup-Speicherort Ihres Remote-Client-Systems.

# REMOTEHOST
backup [email protected]:/home/sk/data/ myclientbackup/

Hier werde ich den Inhalt von /home/sk/data/ meines Remote-Client-Systems sichern Verzeichnis und speichern Sie sie unter /rsnapbackup/myclientbackup/ Verzeichnis auf meinem Backup-Server.

Bitte beachten Sie auch hier, dass ich nicht den vollständigen Pfad angegeben habe (/rsnapbackup/myclientbackup/ ) in der obigen Konfiguration. Weil wir das Root-Sicherungsverzeichnis bereits definiert haben.

Speichern und schließen Sie /etc/rsnapshot.conf Datei.

Nachdem Sie alle Änderungen vorgenommen haben, führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Konfigurationsdatei syntaktisch gültig ist.

$ rsnapshot configtest

Wenn alles in Ordnung ist, sehen Sie die folgende Ausgabe.

Syntax OK

3.3. Sicherungen starten

Führen Sie den folgenden Befehl aus, um die Sicherung manuell mit Rsnapshot zu starten.

# rsnapshot alpha

Die erste Sicherung dauert je nach Größe der Sicherungen einige Minuten bis mehrere Stunden. Die nachfolgenden Backups werden viel schneller sein, da Rsnapshot nur die Unterschiede sichert.

Ebenso können Sie andere Sicherungsebenen starten:

# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily

3.4. Überprüfen und Anzeigen von Backups

Lassen Sie uns überprüfen, ob die Backups wirklich im Root-Backup-Verzeichnis auf dem Backup-Server gespeichert sind.

# ls /rsnapbackup/

Sie sehen die folgende Ausgabe:

alpha.0

Überprüfen Sie den Inhalt von alpha.0 Verzeichnis:

# ls /rsnapbackup/alpha.0/

Sie werden sehen, dass zwei Verzeichnisse automatisch erstellt werden, eines für die lokale Sicherung (myserverbackup) und ein weiteres für entfernte Systeme (myclientbackup).

myclientbackup  myserverbackup

Um die Sicherungen des Client-Systems zu überprüfen, führen Sie Folgendes aus:

# ls /rsnapbackup/alpha.0/myclientbackup/

Überprüfen Sie die Sicherungen des Serversystems (lokales System):

# ls /rsnapbackup/alpha.0/myserverbackup/

Wenn Sie jeweils Rnaspshot ausführen, werden neue Verzeichnisse wie alpha.0 erstellt , alpha.1 usw., abhängig von der Anzahl der von Ihnen konfigurierten Aufbewahrungsebenen.

# ls /rsnapbackup/
alpha.0  alpha.1

Der alpha.0 Verzeichnis enthält die neueste Sicherung.

3.5. Backups planen

Sie müssen den Befehl rsnapshot nicht jedes Mal ausführen, um Sicherungen zu erstellen. Definieren Sie einfach einen Cronjob um die Backup-Jobs in regelmäßigen Abständen zu automatisieren.

Erstellen Sie dazu eine neue Cron-Job-Datei für rsnapshot:

# nano /etc/cron.d/rsnapshot

Fügen Sie die folgenden Zeilen hinzu:

0 */4 * * *     /usr/bin/rsnapshot alpha
50 23 * * *     /usr/bin/rsnapshot beta
00 22 1 * *     /usr/bin/rsnapshot delta

Die erste Zeile zeigt an, dass es sechs Alpha geben wird Jeden Tag aufgenommene Schnappschüsse (bei 0, 4, 8, 12, 16 und 20 Stunden), Beta Schnappschüsse, die jede Nacht um 23:50 Uhr aufgenommen werden, und Delta Schnappschüsse werden am ersten Tag eines jeden Monats um 22:00 Uhr aufgenommen. Sie können das Timing nach Ihren Wünschen anpassen. Speichern und schließen Sie die Datei.

Erledigt! Von nun an sichert Rsnapshot Ihre Daten automatisch zum festgelegten Zeitpunkt.

Weitere Einzelheiten finden Sie in den Manpages.

# man rsnapshot

4. Dateien wiederherstellen

Das Wiederherstellen von Dateien ist einfach! Wenn Sie sudo haben oder root Zugriff auf den Sicherungsserver haben, können Sie die Dateien einfach aus dem Rsnapshot-Stammverzeichnis kopieren, d. h. /rsnapbackup/ .

5. Fazit

Das Einrichten eines Backup-Servers mit Rsnapshot unter Linux ist nicht so schwierig. Die anfängliche Konfiguration mag schwierig erscheinen und ein wenig Zeit in Anspruch nehmen. Aber sobald Sie den Rsnapshot-Sicherungsserver richtig eingerichtet haben, funktioniert er sofort und ohne Benutzereingriff.

Ressourcen:

  • Rsnapshot-Website
  • Rsnapshot-GitHub-Repository

Verwandte Lektüre:

  • So sichern Sie Ihr gesamtes Linux-System mit Rsync
  • So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux
  • So sichern und wiederherstellen Sie Dateien mit Deja Dup unter Linux
  • So sichern und wiederherstellen Sie ein Linux-System mit Timeshift
  • So synchronisieren Sie Dateien mit Unison unter Linux
  • So synchronisieren Sie lokale und entfernte Verzeichnisse unter Linux
  • So synchronisieren Sie Dateien und Verzeichnisse mit Zaloha.sh
  • CYA – System-Snapshot- und Wiederherstellungsprogramm für Linux
  • Restic – Eine schnelle, sichere und effiziente Sicherungsanwendung

AlmaLinux
  1. So erstellen Sie eine Sicherung

  2. So richten Sie einen zentralen Protokollierungsserver mit Rsyslog ein

  3. So installieren und richten Sie cPanel auf einem Linux-Server ein

  4. So richten Sie passwortloses SSH unter Linux ein

  5. So sichern Sie das Linux-Betriebssystem mit dem Befehl „dd“.

So überwachen Sie Linux-Server mit CloudStats

So richten Sie einen Streaming Media Server mit Jellyfin unter Linux ein

So sichern Sie das Linux-Dateisystem mit dem Dump-Befehl

So führen Sie eine Remote-Linux-Sicherung mit SSH durch

So sichern Sie einen Remote-Linux-Host mit dem Dienstprogramm rsnapshot rsync

So richten Sie einen Linux-VPN-Server und -Client mit OpenVPN ein