Backup · 4 min read · Jan 02, 2026
Automatisierte Backups Mit rdiff-backup
Dies ist ein “copy & paste” HowTo!
Der einfachste Weg, dieses Tutorial zu befolgen, ist die Verwendung eines Befehlszeilenclients/SSH-Clients (wie
PuTTY
für Windows) und einfach die Befehle zu kopieren und einzufügen (außer dort, wo Sie eigene Informationen wie IP-Adressen, Hostnamen, Passwörter,… angeben müssen). Dies hilft, Tippfehler zu vermeiden.
Automatisierte Backups Mit rdiff-backup
Version 1.0
Autor: Falko Timme
Dieses Tutorial beschreibt, wie man automatisierte Server-Backups mit dem Tool rdiff-backup durchführt. rdiff-backup ermöglicht es Ihnen, über ein Netzwerk mit SSH Backups zu erstellen, sodass die Datenübertragung verschlüsselt ist. Die Verwendung von SSH macht rdiff-backup sehr sicher, da niemand die übertragenen Daten lesen kann. rdiff-backup erstellt inkrementelle Backups, wodurch Bandbreite gespart wird.
Bitte erfahren Sie hier mehr über die Funktionen von rdiff-backup: http://www.nongnu.org/rdiff-backup/index.html
Das Problem ist, dass SSH ein Passwort für die Anmeldung benötigt, was nicht gut ist, wenn Sie rdiff-backup als Cron-Job ausführen möchten. Die Notwendigkeit eines Passworts erfordert menschliche Interaktion, was wir nicht wollen. Zum Beispiel, um das Verzeichnis /boot von server1.example.com zu sichern, würden Sie auf Ihrem Backup-Server (in diesem Tutorial nennen wir ihn backup.example.com) rdiff-backup [email protected]::/boot boot eingeben, was versuchen würde, das Verzeichnis /boot von server1.example.com im Verzeichnis boot von backup.example.com zu speichern. Jetzt passiert Folgendes:
| rdiff-backup@backup:~$ rdiff-backup [email protected]::/boot boot Passwort: ----------------------------------------------------------------- Erkannte Fähigkeiten für das Quell-Dateisystem (nur lesen): Zugriffskontrolllisten Aus Erweiterte Attribute Aus Mac OS X-Stil Ressourcenforks Aus Mac OS X Finder-Informationen Aus ----------------------------------------------------------------- Warnung: Eigentum kann im Dateisystem unter boot/rdiff-backup-data nicht geändert werden ----------------------------------------------------------------- Erkannte Fähigkeiten für das Ziel-Dateisystem (lesen/schreiben): Zeichen, die Anführungszeichen benötigen '' Eigentumsänderung Aus Harte Verlinkung Ein fsync() Verzeichnisse Ein Verzeichnisinkremente Berechtigungen Ein Zugriffskontrolllisten Aus Erweiterte Attribute Aus Mac OS X-Stil Ressourcenforks Aus Mac OS X Finder-Informationen Aus ----------------------------------------------------------------- rdiff-backup@backup:~$ |
Sie sehen, in Zeile 2 werden Sie nach dem root-Passwort von server1.example.com gefragt.
Aber glücklicherweise gibt es eine Lösung: die Verwendung von öffentlichen Schlüsseln. Wir erstellen ein Schlüsselpaar (auf unserem Backup-Server backup.example.com), von dem einer in einer Datei auf dem Remote-System (server1.example.com) gespeichert wird. Danach werden wir nicht mehr nach einem Passwort gefragt, wenn wir rdiff-backup ausführen. Dies schließt auch Cron-Jobs ein, was genau das ist, was wir wollen.
Oh, wie Sie vielleicht schon aus dem, was ich bisher geschrieben habe, erraten haben, besteht das Konzept darin, dass wir die Backups von server1.example.com direkt von backup.example.com initiieren; server1.example.com muss nichts tun, um gesichert zu werden.
Dieses Howto ist als praktische Anleitung gedacht; es behandelt nicht die theoretischen Hintergründe. Diese werden in vielen anderen Dokumenten im Web behandelt.
Dieses Dokument kommt ohne jegliche Gewährleistung! Ich möchte sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!
Schritt 1: Installieren Sie rdiff-backup Auf server1.example.com Und backup.example.com
Zuerst müssen wir rdiff-backup auf beiden server1.example.com und backup.example.com installieren. Auf Debian-Systemen können Sie dies einfach tun, indem Sie
apt-get install rdiff-backup
Auf anderen Distributionen ist die Installation unterschiedlich (auf Fedora könnte es etwas wie yum install rdiff-backup, auf Mandriva urpmi rdiff-backup und auf SuSE sollten Sie yast verwenden, um rdiff-backup zu installieren).
Schritt 2: Erstellen Sie Die Schlüssel Auf backup.example.com
Auf backup.example.com erstellen wir eine Gruppe und einen unprivilegierten Benutzer namens rdiff-backup. Dieser Benutzer rdiff-backup wird die Backups ausführen. Wir wollen nicht, dass root die Backups aus Sicherheitsgründen ausführt!
groupadd -g 3500 rdiff-backup
useradd -u 3500 -s /bin/false -d /backup -m -c “rdiff-backup” -g rdiff-backup rdiff-backup
Der zweite Befehl erstellt den Benutzer rdiff-backup mit dem Home-Verzeichnis /backup (das automatisch von diesem Befehl erstellt wird, wenn es noch nicht existiert), der sich nicht an der Shell anmelden darf (wieder aus Sicherheitsgründen). Wenn die Gruppen-ID und die Benutzer-ID 3500 bereits auf Ihrem System verwendet werden, ersetzen Sie sie durch eine andere (freie) ID.
Führen Sie dann aus
su -m rdiff-backup
Mit diesem Befehl werden Sie zum Benutzer rdiff-backup in der Shell. Alle folgenden Befehle müssen als Benutzer rdiff-backup ausgeführt werden!
Erstellen Sie die Schlüssel:
cd /backup
ssh-keygen -t rsa
Sie werden etwas sehen wie:
| rdiff-backup@backup:~$ ssh-keygen -t rsa Erzeuge öffentliches/privates rsa-Schlüsselpaar. Geben Sie die Datei an, in der der Schlüssel gespeichert werden soll (/backup/.ssh/id_rsa): Verzeichnis '/backup/.ssh' erstellt. Geben Sie die Passphrase ein (leer für keine Passphrase): Geben Sie die gleiche Passphrase erneut ein: Ihre Identifikation wurde in /backup/.ssh/id_rsa gespeichert. Ihr öffentlicher Schlüssel wurde in /backup/.ssh/id_rsa.pub gespeichert. Der Schlüssel-Fingerabdruck ist: 88:18:4e:55:e9:27:8e:2a:44:4b:03:bd:9d:0f:fc:48 rdiff-backup@backup |
Es ist in Ordnung, den Schlüssel in /backup/.ssh/id_rsa zu speichern, sodass Sie einfach enter drücken können. Es ist wichtig, dass Sie keine Passphrase eingeben, da das Backup sonst ohne menschliche Interaktion nicht funktioniert, also drücken Sie erneut enter. Am Ende werden zwei Dateien erstellt: /backup/.ssh/id_rsa und /backup/.ssh/id_rsa.pub.
Erstellen Sie als Nächstes die Datei /backup/.ssh/config mit folgendem Inhalt:
| host server1_backup hostname server1.example.com user root identityfile /backup/.ssh/id_rsa compression yes cipher blowfish protocol 2 |
Der Wert von host ist das, was wir später verwenden, um das Backup zu starten. Sie können jeden Namen verwenden, den Sie möchten (z.B. server1_backup, this_is_the_machine_i_want_to_backup, usw.) (aber er sollte keine Leerzeichen enthalten; Unterstriche sind in Ordnung).
Ändern Sie die Berechtigungen dieser Datei:
chmod -R go-rwx /backup/.ssh
Jetzt kopieren wir unseren öffentlichen Schlüssel nach server1.example.com:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Das wird so aussehen:
| rdiff-backup@backup:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 23 Die Authentizität des Hosts 'server1.example.com (1.2.3.4)' kann nicht festgestellt werden. RSA-Schlüssel-Fingerabdruck ist c7:19:55:7a:54:ce:93:c8:b6:f9:0e:e3:65:24:64:11. Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)? ja Warnung: 'server1.example.com' (RSA) dauerhaft zur Liste der bekannten Hosts hinzugefügt. Passwort: Versuchen Sie jetzt, sich bei der Maschine anzumelden, mit "ssh '[email protected]'", und überprüfen Sie in: .ssh/authorized_keys ob wir nicht zusätzliche Schlüssel hinzugefügt haben, die Sie nicht erwartet haben. rdiff-backup@backup:~$ |
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.