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

Nur-Anhängen von Backups mit borg an einen anderen VPS oder dedizierten Server

Dieses Tutorial zeigt, wie Sie die Daten auf einem Server sichern, der als Hauptserver bezeichnet wird , zu einem anderen Host, hier Backup-Server genannt , mit dem kostenlosen Software-Backup-Programm Borg . Der Backup-Server wird so konfiguriert, dass der Hauptserver im normalen Betrieb nur neue Daten anhängen und keine alten Backups löschen oder verändern kann. Diese Nur-Anhängen-Funktion, kombiniert mit der Tatsache, dass die Backups auf einem separaten Server an einem separaten Ort gespeichert werden, schützt die Backups vor Datenverlust, beispielsweise durch Naturkatastrophen oder einen Hackerangriff auf den Hauptserver.

Voraussetzungen, um dieser Anleitung zu folgen, ist die Verwendung von Debian Stretch (9) oder Debian Buster (10) und haben zwei Server zur Verfügung, einen Hauptserver von dem die Backups genommen werden und ein weiterer Backup-Server wo die Sicherungsarchive gespeichert werden. Diese beiden Server sollten sich für optimalen Schutz an getrennten Standorten befinden.

Diese Anleitung beginnt im ersten Abschnitt mit der Konfiguration auf dem Backup-Server. Im zweiten Abschnitt werden wir den Hauptserver konfigurieren und dann ein Backup und eine Testwiederherstellung durchführen und zeigen, wie alte Backup-Archive manuell gelöscht werden.

1 Konfigurieren Sie den Backup-Server

1.1 Installieren Sie borg und erstellen Sie einen neuen borgbackup-Benutzer

Auf dem Backup-Server (dem Server, auf dem die Backups gespeichert werden sollen) installieren Sie Borg in einem Root-Terminal mit diesem Befehl:

apt install borgbackup

Wählen Sie dann ein Passwort für den borg-Benutzer, den wir bald erstellen werden. (Es ist obligatorisch, ein Passwort für jeden Benutzer zu haben, dieses Passwort wird jedoch fast nie verwendet, da wir uns normalerweise mit einem SSH-Schlüssel mit dem Backup-Server verbinden.) Wenn Sie ein zufälliges 64-Zeichen-Passwort generieren möchten, verwenden Sie diesen Befehl :

< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-64};echo;

Kopieren Sie das Passwort für den angezeigten borg-Benutzer in die Zwischenablage und speichern Sie es an einem sicheren Ort, woanders als auf dem Server selbst.

Jetzt erstellen wir den borgbackup-Benutzer:

adduser borgbackup

Wenn Sie eine Frage zum Passwort erhalten, fügen Sie das zuvor kopierte Passwort ein, drücken Sie die Eingabetaste und fügen Sie das Passwort erneut ein, gefolgt von der Eingabetaste. Geben Sie nichts weiter ein, drücken Sie einfach die Eingabetaste, um die folgenden Fragen zu beantworten.

1.2 SSH-Schlüssel für den borgbackup-Benutzer generieren

Wir müssen jetzt mit su:

der neue Benutzer werden
su borgbackup
cd

Dann generieren wir ein neues SSH-Schlüsselpaar für den Benutzer:

ssh-keygen -t ed25519

Nachdem Sie die Eingabetaste gedrückt haben, erhalten Sie eine Reihe von Fragen. Lassen Sie die Antworten leer, drücken Sie einfach mehrmals die Eingabetaste, bis der Befehl beendet ist. Legen Sie keine Passphrase für den Schlüssel fest, drücken Sie auch bei dieser Frage die Eingabetaste.

1.3 Erstellen Sie das Backup-Verzeichnis

Jetzt ist es an der Zeit, das Verzeichnis zu erstellen, in dem die Backups gespeichert werden, was in der Borg-Terminologie als das Borg-Repository definiert wird . Wir werden das Verzeichnis einfach borgbackup nennen, aber Sie könnten es stattdessen auch nach dem Hostnamen Ihres Hauptservers benennen.

cd
mkdir borgbackup
chmod go-rwx borgbackup
chmod u+rwx borgbackup

2 Richten Sie den Hauptserver ein und wie er sich mit dem Backup-Server verbindet

2.1 Borg installieren

Jetzt wechseln wir von der Arbeit auf dem Backup-Server zur Arbeit auf dem Hauptserver.

Installieren Sie auf dem Hauptserver (dem Server, von dem Sie Backups erstellen möchten) Borg in einem Root-Terminal mit diesem Befehl:

apt install borgbackup

Später benötigen wir die externe IP-Adresse des Hauptservers (der, auf dem wir uns befinden). Bitte kopieren Sie diese IP-Adresse, damit Sie sie schnell zur Hand haben. Wenn Sie sich nicht an die externe IP-Adresse des Hauptservers erinnern, führen Sie diesen Befehl aus, um sie anzuzeigen:

wget -qO- http://ipecho.net/plain | xargs echo

2.2 Erlauben Sie dem Hauptserver, auf den Backup-Server zuzugreifen

Befehle, die Sie auf dem Hauptserver ausführen

Jetzt bereiten wir die SSH-Schlüssel-Authentifizierung vor, damit eine Verbindung vom Hauptserver zum Backup-Server möglich ist. Verwenden Sie zunächst diesen Befehl, um den öffentlichen SSH-Schlüssel des Root-Benutzers auf dem Hauptserver anzuzeigen:

cat ~/.ssh/id_*.pub

Wenn Sie einen öffentlichen SSH-Schlüssel für root haben, sollte dieser Schlüssel jetzt angezeigt werden. Kopieren Sie den Schlüssel in Ihre Zwischenablage, Sie müssen ihn später in eine Datei auf dem Backup-Server einfügen.

Wenn der Schlüssel nicht angezeigt wird, müssen Sie das Schlüsselpaar generieren. Führen Sie in diesem Fall beispielsweise diesen Befehl aus:ssh-keygen -t ed25519 gefolgt von wiederholtem Drücken der Eingabetaste.

Jetzt müssen wir den Backup-Server anweisen, den Zugriff vom Hauptserver (wo wir uns gerade befinden) mit dem öffentlichen SSH-Schlüssel zuzulassen. Geben Sie dazu diesen Befehl ein, aber ersetzen Sie zuerst BACKUPHOSTNAME mit dem Hostnamen Ihres Backup-Servers:

ssh-copy-id -i ~/.ssh/id_*.pub [email protected]BACKUPHOSTNAME

Verbinden Sie sich mit dem Sicherungsserver

Sie müssen nun das Passwort für den borgbackup-Benutzer eingeben, den Sie in Schritt 1.1 erstellt haben. Danach sollte es möglich sein, als borgbackup-Benutzer ohne Passwort direkt auf den Backup-Server zuzugreifen. Testen Sie nun, ob dies möglich ist, indem Sie diesen Befehl eingeben und dabei BACKUPHOSTNAME durch den Hostnamen Ihres Backup-Servers ersetzen:

ssh [email protected]BACKUPHOSTNAME

Befehle, die Sie auf dem Sicherungsserver ausführen

Wir werden die Sicherheit jetzt noch weiter verschärfen, indem wir den Zugriff nur von der IP-Adresse des Hauptservers mit diesem Schlüssel einschränken.

Bleiben Sie auf dem Backup-Server und führen Sie diesen Befehl aus:

nano ~/.ssh/authorized_keys

Jetzt sollten Sie eine lange Zeile sehen, die mit ssh beginnt. Stellen Sie sicher, dass sich der Cursor am Anfang der Datei befindet. Fügen Sie die folgenden Daten in derselben Zeile vor dem ssh-Schlüssel hinzu, aber ersetzen Sie bitte zuerst SERVERIPADDRESS mit der IP-Adresse Ihres Servers (die Sie am Anfang dieses Abschnitts recherchiert haben):

from="SERVERIPADDRESS",command="borg serve --append-only --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc 

Stellen Sie sicher, dass zwischen dem hinzugefügten Abschnitt und dem darauffolgenden bereits bestehenden Abschnitt, der mit ssh beginnt, ein Leerzeichen steht. Speichern Sie die Datei dann mit Strg+O und verlassen Sie sie mit Strg+X. Wir haben den Zugriff auf den Backup-Server jetzt auf zwei Arten eingeschränkt. Zunächst wird nur der IP-Adresse des Hauptservers der Zugriff gestattet. Zweitens ist es durch die Option --append-only nur erlaubt, Daten zum Borg-Repository hinzuzufügen, aber Löschungen und Änderungen sind nicht erlaubt.

Verbindung zum Backup-Server trennen und zum Hauptserver zurückkehren

Führen Sie diesen Befehl aus, um den Sicherungsserver zu verlassen und zum Hauptserver zurückzukehren:

exit

2.3 Wählen Sie ein Borg-Repository-Passwort

Ein Borg-Repository ist der Ort, an dem die Backups gespeichert werden. Es ist durch ein Borg-Repository-Passwort geschützt, von dem Sie wissen, dass Sie es auswählen müssen. Das Passwort wird benötigt, um neue Sicherungen durchzuführen und auf alte zuzugreifen. Sie können sich entweder selbst ein Passwort ausdenken (wählen Sie für optimale Sicherheit mindestens 20 Zeichen) oder mit diesem Befehl zufällig ein 64 Zeichen langes Passwort generieren:

< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-64};echo;

Kopieren Sie das Borg-Repository-Passwort in Ihre Zwischenablage, indem Sie es markieren und Strg+C drücken. Es ist wichtig, das borg-Repository-Passwort an einem sicheren Ort aufzubewahren, da Sie ohne dieses Passwort nicht auf Ihre Backups zugreifen können! Speichern Sie also gleich eine Kopie des Borg-Passworts woanders als auf Ihren Servern, zum Beispiel in einem Passwort-Manager (wie KeePass) auf Ihrem eigenen Computer.

2.4 Erstellen Sie das Borg-Repository

In der Borg-Terminologie heißt der Ort, an dem die Sicherungen gespeichert werden, Borg Repository . Das Passwort wird nun als Umgebungsvariable in Vorbereitung auf die Erstellung dieses Repositorys festgelegt. Ersetzen Sie PASSWORT mit Ihrem tatsächlichen Passwort und führen Sie den folgenden Befehl als Root-Benutzer Ihres Hauptservers aus:

export BORG_PASSPHRASE='PASSWORD'

Erstellen Sie das Borg-Repository auf diese Weise - aber ersetzen Sie zuerst BACKUPHOSTNAME mit dem Hostnamen Ihres Backup-Servers:

borg init -e repokey-blake2 [email protected]BACKUPHOSTNAME:/home/borgbackup/borgbackup/

Es ist nun alles vorbereitet, um borg für Backups zu verwenden, was das Thema des folgenden Abschnitts sein wird.

3 Sicherung vom Hauptserver

3.1 Sicherung manuell ausführen

Im folgenden Beispiel wird das gesamte System des Hauptservers gesichert, mit Ausnahme bestimmter Verzeichnisse, die für die Sicherung nicht relevant sind.

Bitte stellen Sie sicher, dass Sie auf Ihrem Hauptserver als root angemeldet sind, bevor Sie fortfahren. Zuerst werden wir die Umgebungsvariable für das Passwort des Borg-Repositorys mit diesem Befehl setzen (ersetzen Sie PASSWORD mit Ihrem aktuellen Borg-Repository-Passwort:

export BORG_PASSPHRASE='PASSWORD'

Dann führen wir den folgenden Befehl aus, um eine vollständige Systemsicherung durchzuführen. Bitte passen Sie die Verzeichnisausschlüsse, die mit --exclude beginnen, an Ihre Bedürfnisse an. Beispielsweise möchten Sie möglicherweise einen Ausschluss des /mnt-Verzeichnisses hinzufügen, indem Sie --exclude=mnt hinzufügen. Bitte beachten Sie, dass Sie nicht den ersten Schrägstrich im Ausschlussmuster eingeben sollten, z. Sie schreiben mnt statt /mnt. Sie müssen auch den BACKUPHOSTNAME ändern auf den tatsächlichen Hostnamen Ihres Backup-Servers. Wir müssen zuerst einen cd / Befehl ausführen, da borg normalerweise das Backup von dem Verzeichnis aus startet, aus dem es ausgeführt wird.

cd / && borg create --stats --progress --compress lz4 [email protected]BACKUPHOSTNAME:/home/borgbackup/borgbackup/::`hostname`-`date +%Y-%m-%d-%H-%M-%S` ./ --exclude=dev --exclude=mnt/borgbackup -exclude=proc --exclude=run --exclude=root/.cache/ --exclude=sys --exclude=tmp && cd

Das erste Mal, wenn die Sicherung ausgeführt wird, dauert es eine Weile (bis zu mehreren Stunden, wenn Sie eine große Datenmenge sichern müssen). Sie werden eine Statuszeile sehen, die schnell genau informiert, welche Datei Borg im Backup verarbeitet. Ab dem zweiten Mal werden Backups viel schneller durchgeführt, da nur Änderungen seit dem letzten Backup übertragen werden.

3.2 Sicherung mit Cron planen

Es ist natürlich am besten, in regelmäßigen Abständen ein automatisches Backup durchzuführen, anstatt an manuelle Backups denken zu müssen. Um dies zu erreichen, erstellen wir zunächst ein Shell-Skript, das den Backup-Job ausführt, den wir dann mit dem Nano-Editor als Root-Benutzer auf dem Hauptserver bearbeiten:

touch /usr/local/bin/borgbackup.sh
chmod go-rwx /usr/local/bin/borgbackup.sh
chmod u+rwx /usr/local/bin/borgbackup.sh
nano /usr/local/bin/borgbackup.sh

Fügen Sie diese Zeilen in das neue Shell-Skript ein:

#!/bin/sh
export BORG_PASSPHRASE='PASSWORD'
cd / && borg create --stats --progress --compress lz4 [email protected]BACKUPHOSTNAME:/home/borgbackup/borgbackup/::`hostname`-`date +%Y-%m-%d-%H-%M-%S` ./ --exclude=dev --exclude=proc --exclude=run --exclude=root/.cache/ --exclude=mnt/borgmount --exclude=sys --exclude=tmp && cd

Sie müssen PASSWORT ersetzen Ersetzen Sie BACKUPHOSTNAME durch Ihr Borg-Repository-Passwort mit dem Hostnamen Ihres Backup-Servers und passen Sie schließlich die Ausschlussmuster an Ihre Bedürfnisse an - Sie können --exclude=mnt hinzufügen, um das /mnt-Verzeichnis von der Sicherung auszuschließen. Speichern Sie die Datei im Nano-Editor, indem Sie Strg+O drücken, und beenden Sie dann mit Strg+X.

Als nächstes testen Sie das Skript, indem Sie es vom Terminal aus ausführen:

/usr/local/bin/borgbackup.sh

Um jede Nacht ein Backup für 02:00 Uhr zu planen, fügen Sie das soeben erstellte Backup-Shell-Skript zu /etc/crontab :

hinzu
nano /etc/crontab

Fügen Sie dann der Crontab eine neue Zeile mit dem Backup-Job hinzu:

# Backup via Borg to backup server 
00 02           * * *   root    /usr/local/bin/borgbackup.sh

4 Dateien wiederherstellen (während Sie am Hauptserver angemeldet sind)

4.1 Eine Liste der erstellten Backups anzeigen

Sie haben kein funktionierendes Sicherungssystem, bis Sie überprüft haben, dass Sie Daten aus Ihren Sicherungen wiederherstellen können. Daher ist unser nächster Schritt, das zuvor erstellte Backup zu überprüfen. Dies erfolgt vom Root-Terminal des Hauptservers aus. Wir tun dies, indem wir das Backup-Archiv als zusätzliches Dateisystem mounten, aber zuerst überprüfen wir die Liste der Backups, die durch Erstellen eines Shell-Skripts als Root-Benutzer auf Ihrem Hauptserver erstellt wurden:

touch /usr/local/bin/borglist.sh
chmod go-rwx /usr/local/bin/borglist.sh
chmod u+rwx /usr/local/bin/borglist.sh
nano /usr/local/bin/borglist.sh

Fügen Sie Folgendes in das neue Shell-Skript ein und ersetzen Sie PASSWORD mit Ihrem Borg-Repository-Passwort und BACKUPHOSTNAME mit dem Hostnamen Ihres Backup-Servers:

#!/bin/sh
export BORG_PASSPHRASE='PASSWORD'
borg list -v [email protected]BACKUPHOSTNAME:/home/borgbackup/borgbackup/

Speichern Sie die Datei mit Strg+O gefolgt von Strg+X. Führen Sie dann das Shell-Skript folgendermaßen aus:

/usr/local/bin/borglist.sh

Sie sollten nun eine Liste der erstellten Sicherungen sehen. Wenn Ihre erste Sicherung erstellt wurde, sollten Sie daher einen Eintrag in der Liste sehen. Markieren und kopieren Sie nun den Archivnamen in die Zwischenablage. Sie finden den Archivnamen in der ersten Spalte, er besteht aus dem Hostnamen Ihres Hauptservers, gefolgt von Datum und Uhrzeit, in diesem Format:Haupthostname-2019-01-31-12-59-59 .

3.4 Daten überprüfen/wiederherstellen

Wir werden jetzt das gesamte Borg-Repository als FUSE-Dateisystem-Mount einhängen. Das bedeutet, dass das borg-Repository – einschließlich aller gesicherten Dateien – zu einem Dateisystem wird, das wir mit normalen Befehlen wie ls und cd durchlaufen und inspizieren können.

Um das Borg-Repository einfach mounten zu können, erstellen wir eine Verknüpfung der Befehle in Form eines Shell-Skripts. Erstellen und bearbeiten Sie das Shell-Skript auf diese Weise:

touch /usr/local/bin/borgmount.sh
chmod go-rwx /usr/local/bin/borgmount.sh
chmod u+rwx /usr/local/bin/borgmount.sh
nano /usr/local/bin/borgmount.sh

Fügen Sie dann die folgenden Zeilen in das Schell-Skript ein, aber ändern Sie bitte zuerst das PASSWORT unten zu Ihrem Borg-Repository-Passwort und ändern SieBACKUPHOSTNAME an den Hostnamen Ihres Backup-Servers:

#!/bin/sh
mkdir -p /mnt/borgbackup
export BORG_PASSPHRASE='PASSWORD'
borg mount [email protected]BACKUPHOSTNAME:/home/borgbackup/borgbackup/ /mnt/borgbackup

Speichern Sie die Datei mit Strg+O gefolgt von Strg+X. Führen Sie dann das Shell-Skript folgendermaßen aus:

/usr/local/bin/borgmount.sh

Das Borg-Repository sollte jetzt unter /mnt/borgbackup gemountet sein - Sie können dies mit cd und ls überprüfen:

cd /mnt/borgbackup
ls

Jetzt sollten Sie ein Verzeichnis sehen, in dem sich Ihr Backup befindet. Wechseln Sie mit cd in dieses Verzeichnis (ersetzen Sie DIRECTORYNAME durch den Namen des Verzeichnisses, das Sie als Ergebnis des gerade eingegebenen ls-Befehls angezeigt sehen) und verwenden Sie dann ls, um den Inhalt anzuzeigen:

cd DIRECTORYNAME
ls

Jetzt können Sie das letzte Archiv (das letzte erstellte Backup) sehen. Mit diesem Befehl können Sie mit diff vergleichen, ob eine Datei korrekt gesichert wurde, zum Beispiel für /etc/fstab:

diff etc/fstab /etc/fstab

Wenn Sie keine Ausgabe von diff erhalten, sind die beiden Dateien identisch und die Sicherung hat für diese Datei funktioniert. Wenn Sie die Datei hingegen seit der letzten Sicherung geändert haben, sehen Sie, welche Zeilen in den Dateien sich unterscheiden.

Wenn Sie möchten, können Sie Dateien aus der Sicherung wiederherstellen, indem Sie einfach den cp-Befehl verwenden, um Dateien aus dem Unterverzeichnis von /mnt/borgbackup hinein zu kopieren in dem Sie sich gerade im Terminal befinden.

Abschließend erstellen wir ein Skript zum Unmounten des Borg-Fuse-Mounts.

Erstellen und bearbeiten Sie das Shell-Skript auf diese Weise:

touch /usr/local/bin/borgumount.sh
chmod go-rwx /usr/local/bin/borgumount.sh
chmod u+rwx /usr/local/bin/borgumount.sh
nano /usr/local/bin/borgumount.sh

Fügen Sie dann die folgenden Zeilen in das Schell-Skript ein:

#!/bin/sh
cd ~
umount /mnt/borgbackup
rmdir /mnt/borgbackup

Speichern Sie die Datei mit Strg+O gefolgt von Strg+X. Führen Sie dann das Shell-Skript folgendermaßen aus:

/usr/local/bin/borgumount.sh

Der Borg-Fuse-Mount ist jetzt ausgehängt und Sie befinden sich im /root/-Verzeichnis des Terminals.

4 Beschneiden Sie alte Backups (erfordern Zugriff sowohl auf den Backup- als auch auf den Hauptserver)

Wir müssen jetzt zwischen dem Backup-Server und dem Hauptserver hin und her wechseln. Zuerst beginnen wir mit Befehlen auf dem Backup-Server.

Nach einer Weile kann die Größe der Backups groß werden. Aus Sicherheitsgründen ist es dem Hauptserver nicht erlaubt, alte Backups automatisch zu löschen. Wir können jedoch bei Bedarf vorübergehend das Entfernen alter Backup-Archive zulassen, um Speicherplatz auf dem Backup-Server zu sparen.

Dieser Entfernungsprozess wird in der Borg-Terminologie als Beschneiden bezeichnet. Der Pruning-Prozess beginnt auf dem Backup-Server, indem temporärer Lese-/Schreibzugriff gewährt wird. Dann verbinden wir uns mit dem Hauptserver, um den Pruning-Befehl auszugeben. Abschließend greifen wir erneut auf den Backup-Server zu, um den Schreib-Lese-Zugriff zu deaktivieren, sodass alte Backups vor erneuter Löschung oder Änderung geschützt sind.

4.1 Temporären Lese- und Schreibzugriff zulassen (vom Backup-Server ausgeführt)

Wir werden jetzt am Backup-Server arbeiten.

Verbinden Sie sich dazu mit dem Backup-Server und melden Sie sich als root an. Um Lese- und Schreibzugriff zu ermöglichen, müssen wir die Datei /home/borgbackup/.ssh/authorized_keys auf dem Backup-Server ändern. Führen Sie diese Befehle aus, um der borgbackup-Benutzer zu werden, erstellen Sie eine Sicherungskopie der Datei und bearbeiten Sie die Datei dann mit nano:

su borgbackup
cd
cp -a ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bak
nano ~/.ssh/authorized_keys

Jetzt sollten Sie im Nano-Editor eine lange Zeile sehen, die mit from=beginnt. Trennen Sie die Zeile durch Drücken von Strg+K und drücken Sie dann Strg+U und noch einmal Strg+U, sodass Sie jetzt zwei identische Zeilen haben. Drücken Sie zweimal die Aufwärtstaste auf Ihrer Tastatur, um den Cursor in die erste Zeile zu setzen. Geben Sie dann ein #-Zeichen ein, um die erste Zeile auszukommentieren. Drücken Sie als Nächstes die Abwärtstaste auf Ihrer Tastatur, um in die zweite Zeile zu gelangen. Hier sollten Sie sich mit der rechten Taste auf Ihrer Tastatur nach rechts bewegen, bis Sie beim ersten - in --append-only stehen. Drücken Sie dann wiederholt die Entf-Taste, um die Option --append-only zu löschen. Die Datei sollte ungefähr so ​​aussehen, beachten Sie, dass wir die erste Zeile auskommentiert haben und dass --append-only aus der zweiten Zeile gelöscht wird:

#from="SERVERIPADDRESS",command="borg serve --append-only --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ...
from="SERVERIPADDRESS",command="borg serve --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ..

Speichern Sie die Datei mit Strg+O und verlassen Sie sie mit Strg+X. Wir haben jetzt den Lese- und Schreibzugriff auf das Borg-Repository aktiviert.

4.2 Löschen alter Backups (vom Hauptserver durchgeführt)

Verbinden Sie sich nun in einem neuen Terminalfenster als Root-Benutzer mit dem Hauptserver.

Wir werden jetzt ein Skript auf dem Hauptserver erstellen, um alte Backups zu löschen (d. h. zu entfernen). Erstellen und bearbeiten Sie das Shell-Skript auf dem Hauptserver auf diese Weise:

touch /usr/local/bin/borgprune.sh
chmod go-rwx /usr/local/bin/borgprune.sh
chmod u+rwx /usr/local/bin/borgprune.sh
nano /usr/local/bin/borgprune.sh

Fügen Sie dann die folgenden Zeilen in das Shell-Skript ein. Ersetzen Sie dann PASSWORT mit Ihrem Borg-Repository-Passwort und BACKUPHOSTNAME mit dem Hostnamen Ihres Backup-Servers. Sie müssen auch anpassen, wie viele alte Sicherungen Sie behalten möchten. In diesem Beispiel führen wir 7 tägliche Backups, 4 wöchentliche Backups und 12 monatliche Backups.

#!/bin/sh
export BORG_PASSPHRASE='PASSWORD'
borg prune --stats --progress [email protected]BACKUPHOSTNAME:/home/borgbackup/borgbackup/ --prefix `hostname`- --keep-daily=7 --keep-weekly=4 --keep-monthly=12

Drücken Sie Strg+O und Strg+X, um die Datei zu speichern und zu verlassen. Führen Sie dann das soeben erstellte Prune-Skript auf dem Hauptserver aus:

/usr/local/bin/borgprune.sh

Dieser Befehl wird eine Weile dauern (kann bis zu ein paar Stunden dauern), aber Sie können den Fortschritt sehen, den er unterwegs macht, in zwei Durchgängen, um 100 % zu erreichen.

4.3 Lese- und Schreibzugriff verbieten (vom Backup-Server ausgeführt)

Jetzt gehen wir wieder an die Arbeit am Backup-Server.

Nachdem der prune-Befehl auf dem Hauptserver beendet wurde, verbinden Sie sich nun mit dem Backup-Server als borgbackup-Benutzer und bearbeiten die /home/borgbackup/.ssh/authorized_keys-Datei erneut, um den Lese- und Schreibzugriff zu verbieten.

Gehen Sie folgendermaßen auf dem Backup-Server vor:

su borgbackup
cd
nano ~/.ssh/authorized_keys

Entfernen Sie im Nano-Editor das #-Zeichen am Anfang der ersten Zeile, indem Sie die Entf-Taste auf Ihrer Tastatur drücken. Drücken Sie dann die Abwärtstaste und fügen Sie in der zweiten Zeile ein neues #-Zeichen ein. Danach sollte die Datei ungefähr so ​​aussehen:

from="SERVERIPADDRESS",command="borg serve --append-only --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ...
#from="SERVERIPADDRESS",command="borg serve --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ..

Speichern Sie die Datei mit Strg+O und verlassen Sie sie mit Strg+X. Wir haben jetzt den Lese- und Schreibzugriff auf das Borg-Repository deaktiviert.

Jetzt können Backups wie gewohnt fortgesetzt werden, nur durch Anhängen, und Sie sind vor Löschversuchen des Hauptservers geschützt, die auf die auf dem Backup-Server gespeicherten Backups abzielen.

4.4 Schlussbemerkungen

Sie haben jetzt ein externes Sicherungssystem erstellt, das nur angehängt werden kann. Das bedeutet, dass die Backups auf zwei Arten geschützt sind. Erstens sind die Backups im Sinne einer physischen Trennung vom Hauptserver geschützt. Zweitens und letztens sind bereits erstellte Sicherungen vor Änderungsversuchen des Hauptservers geschützt (außer wenn Sie sich ausdrücklich dafür entscheiden, sie durch manuelles Pruning zu ändern).


Linux
  1. So konfigurieren Sie die Sicherung in cPanel/WHM Server

  2. Shared vs. VPS vs. Dedicated Hosting

  3. So installieren Sie Borgmatic für einfache Linux-Server-Backups

  4. Was können Sie mit einem 256 MB Cloud VPS für 0,99 $ machen?

  5. Was können Sie mit einem VPS und einem Cloud-Server machen?

So richten Sie einen voll ausgestatteten Mailserver mit IRedMail auf Centos 7 VPS ein

So richten Sie einen voll ausgestatteten Mailserver mit iRedMail auf Ubuntu 18.04 VPS ein

Wie installiere und konfiguriere ich Django auf Linux VPS und Dedicated Server?

Wie übertrage ich cPanel-Konten manuell von Shared Hosting auf VPS/Dedicated Server?

wie man die SSH-Schlüssel-basierte Authentifizierung in Linux VPS oder Dedicated Server konfiguriert

So überprüfen Sie die VPS-Serverparameter mit dem Linux-Befehl