Website-Suche

So installieren Sie Duplicity für inkrementelle Backups unter Linux


Die Erfahrung zeigt, dass man bei System-Backups nie zu paranoid sein kann. Wenn es um den Schutz und die Aufbewahrung wertvoller Daten geht, ist es am besten, die Extrameile zu gehen und sicherzustellen, dass Sie sich bei Bedarf auf Ihre Backups verlassen können.

Selbst heute, wo einige Cloud- und Hosting-Anbieter automatisierte Backups für VPS zu relativ geringen Kosten anbieten, tun Sie gut daran, Ihre eigene Backup-Strategie mit Ihren eigenen Tools zu erstellen, um etwas Geld zu sparen und es dann vielleicht zu verwenden, um zusätzlichen Speicherplatz zu kaufen oder einen größeren VPS zu erhalten.

Klingt interessant? In diesem Artikel zeigen wir Ihnen, wie Sie ein Tool namens Duplicity verwenden, um Dateien und Verzeichnisse zu sichern und zu verschlüsseln. Darüber hinaus hilft uns die Verwendung inkrementeller Backups für diese Aufgabe, Speicherplatz zu sparen.

Das heißt, fangen wir an.

Installieren des Duplicity Backup Tools unter Linux

Um Duplicity in RHEL-basierten Distributionen zu installieren, müssen Sie zuerst das EPEL-Repository aktivieren (Sie können diesen Schritt weglassen, wenn Sie Fedora selbst verwenden).

Auf RHEL 9:

subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Unter CentOS 9, AlmaLinux 9, Rocky Linux 9:

dnf config-manager --set-enabled crb
dnf install epel-release

Auf RHEL 8:

subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Unter CentOS 9, AlmaLinux 9, Rocky Linux 9:

dnf config-manager --set-enabled powertools
dnf install epel-release

Lauf dann,

dnf install duplicity

Für Debian-basierte Distributionen wie Ubuntu und Linux Mint.

sudo apt update 
sudo apt install duplicity

Theoretisch werden viele Methoden für die Verbindung zu einem Dateiserver unterstützt, obwohl bisher nur ssh/scp/sftp, local file access, rsync, ftp, HSI, WebDAV und Amazon S3 in der Praxis getestet wurden.

Sobald die Installation abgeschlossen ist, werden wir sftp in verschiedenen Szenarien ausschließlich verwenden, sowohl zum Sichern als auch zum Wiederherstellen der Daten.

Unsere Testumgebung besteht aus einer RHEL 8 Box (zu sichern) und einer Debian 11 Maschine (Backup-Server).

Erstellen von SSH-Schlüsseln für die passwortlose Anmeldung am Remote-Server

Beginnen wir damit, die SSH-Schlüssel in unserer RHEL-Box zu erstellen und sie auf den Debian-Backup-Server zu übertragen.

Wenn Sie SSH auf einem anderen Port ausführen, geht der folgende Befehl davon aus, dass der sshd-Daemon auf Port XXXXX auf dem Debian-Server lauscht. Ersetzen Sie AAA. BBB. CCC.DDD mit der tatsächlichen IP des Remote-Servers.

ssh-keygen -t rsa
ssh-copy-id [email 
ssh-copy-id -p XXXXX [email   

Dann sollten Sie sicherstellen, dass Sie sich ohne Verwendung eines Kennworts mit dem Backup-Server verbinden können:

ssh [email 

Jetzt müssen wir die GPG-Schlüssel erstellen, die für die Ver- und Entschlüsselung unserer Daten verwendet werden:

gpg2 --full-gen-key

Sie werden aufgefordert, Folgendes einzugeben:

  • Art des Schlüssels
  • Schlüsselgröße
  • Wie lange der Schlüssel gültig sein soll
  • Eine Passphrase

Um die für die Erstellung der Schlüssel benötigte Entropie zu erzeugen, können Sie sich über ein anderes Terminalfenster am Server anmelden und einige Aufgaben ausführen oder einige Befehle ausführen, um Entropie zu erzeugen (andernfalls müssen Sie lange warten, bis dieser Teil des Prozesses abgeschlossen ist).

Nachdem die Schlüssel generiert wurden, können Sie sie wie folgt auflisten:

gpg --list-keys

Die oben gelb hervorgehobene Zeichenfolge wird als öffentliche Schlüssel-ID bezeichnet und ist ein angefordertes Argument zum Verschlüsseln Ihrer Dateien.

Erstellen eines Linux-Backups mit Duplicity

Um einfach zu beginnen, sichern wir nur das Verzeichnis /var/log, mit Ausnahme von /var/log/anaconda und /var/log/sa.

Da dies unser erstes Backup ist, wird es ein vollständiges Backup sein. Nachfolgende Durchläufe erstellen inkrementelle Backups (es sei denn, wir fügen die vollständige Option ohne Bindestriche direkt neben der Duplizität im folgenden Befehl hinzu):

PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email //backups/rhel8
OR
PASSPHRASE="YourPassphraseHere" duplicity --encrypt-key YourPublicKeyIdHere --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://root@RemoteServer:XXXXX//backups/rhel8

Stellen Sie sicher, dass Sie den doppelten Schrägstrich im obigen Befehl nicht verpassen! Sie werden verwendet, um einen absoluten Pfad zu einem Verzeichnis mit dem Namen /backups/rhel8 in der Backup-Box anzugeben, in dem die Backup-Dateien gespeichert werden.

Ersetzen Sie YourPassphraseHere, YourPublicKeyIdHere und RemoteServer durch die zuvor eingegebene Passphrase, die GPG-ID des öffentlichen Schlüssels bzw. durch die IP-Adresse bzw. den Hostnamen des Sicherungsservers.

Die Ausgabe sollte in etwa wie in der folgenden Abbildung aussehen:

Die obige Abbildung zeigt, dass insgesamt 86,3 MB auf 3,22 MB im Ziel gesichert wurden. Wechseln wir zum Backup-Server, um unser neu erstelltes Backup zu überprüfen:

Eine zweite Ausführung desselben Befehls führt zu einer viel geringeren Sicherungsgröße und -zeit:

Wiederherstellen von Linux-Backups mit Duplicity

Um eine Datei, ein Verzeichnis mit seinem Inhalt oder die gesamte Sicherung erfolgreich wiederherzustellen, darf das Ziel nicht existieren (Duplizieren überschreibt keine vorhandene Datei oder kein vorhandenes Verzeichnis). Zur Verdeutlichung löschen wir das Cron-Protokoll im CentOS-Feld:

rm -f /var/log/cron

Die Syntax zum Wiederherstellen einer einzelnen Datei vom Remote-Server lautet:

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename

wo

  • filename ist die zu extrahierende Datei mit einem relativen Pfad zu dem Verzeichnis, das gesichert wurde
  • /where/to/restore ist das Verzeichnis im lokalen System, in das wir die Datei wiederherstellen möchten.

In unserem Fall müssen wir Folgendes ausführen, um das Cron-Hauptprotokoll aus der Remote-Sicherung wiederherzustellen:

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email :XXXXX//backups/rhel8 /var/log/cron

Das Cron-Protokoll sollte am gewünschten Ziel wiederhergestellt werden.

Ebenso können Sie ein Verzeichnis aus /var/log löschen und es mit dem Backup wiederherstellen:

rm -rf /var/log/mail
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email :XXXXX//backups/rhel8 /var/log/mail

In diesem Beispiel sollte das E-Mail-Verzeichnis mit seinem gesamten Inhalt an seinem ursprünglichen Speicherort wiederhergestellt werden.

Verwendung von Duplicity-Befehlen

Sie können sich die Liste der archivierten Dateien jederzeit mit folgendem Befehl anzeigen lassen:

duplicity list-current-files sftp://[email :XXXXX//backups/rhel8

Backups löschen, die älter als 6 Monate sind:

duplicity remove-older-than 6M sftp://[email :XXXXX//backups/rhel8

Stellen Sie myfile im Verzeichnis gacanepa wieder her, wie es vor 2 Tagen und 12 Stunden war:

duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email :XXXXX//remotedir/backups /home/gacanepa/myfile

Im letzten Befehl sehen wir ein Beispiel für die Verwendung des Zeitintervalls (wie durch -t angegeben): eine Reihe von Paaren, bei denen jedes aus einer Zahl besteht, gefolgt von einem der Zeichen s, m, h, D, W, M oder Y (jeweils für Sekunden, Minuten, Stunden, Tage, Wochen, Monate oder Jahre).

Zusammenfassung

In diesem Artikel haben wir erklärt, wie Sie Duplicity verwenden, ein Backup-Dienstprogramm, das standardmäßig Dateien und Verzeichnisse verschlüsselt. Ich empfehle Ihnen dringend, einen Blick auf die Website des Duplicity-Projekts zu werfen, um weitere Dokumentationen und Beispiele zu erhalten.

Wir haben eine Manpage von Duplicity im PDF-Format für Ihre Lektüre bereitgestellt, die auch ein vollständiges Nachschlagewerk ist.

Zögern Sie nicht, uns mitzuteilen, wenn Sie Fragen oder Kommentare haben.

Verwandte Artikel: