Linux-Backup mit duplicity

Ein Grundsatz in der IT lautet: Backup, Backup, Backup. Auch wenn die ganze Zeit über alles normal läuft, wird die Katastrophe genau dann eintreffen, wenn kein Backup zur Verfügung steht. Dabei sind Festplatten-Crashes evtl. noch die Ausnahme, vielmehr werden sicherlich Bedienungsfehler oder ein unachtsames Kommando zum rekursiven Löschen von Verzeichnissen die Katastrophe auslösen. Wichtige Arbeiten sind verschwunden, ganze Projekte werden zurückgeworfen, die private Bilder- oder Musiksammlung ist verloren. Diesem Horrorszenario begegnet man mit einem regelmäßigem Backup der wichtigen Daten. Ebenso sollte das Backup automatisch ausgeführt werden und nicht per Hand ausgelöst werden müssen. Für Serverbetreiber ist ein automatisches Backup ebenso Pflicht, um im Fehlerfall schnell wieder den gewohnten Service zur Verfügung stellen zu können.

Bei der Suche nach einem geeigneten Backup-Tool stieß ich auf duplicity. Nach dem Studium diverser Howtos zu duplicity und besonders als ich las, dass mein Hosting-Provider in seinem Wiki explizit duplicity inkl. ein paar Beispielen erwähnt, hatte ich meine Lösung gefunden. duplicity kann die Backups über eine Vielzahl von Protokollen übertragen. Aktuell werden HTTP, FILE, FTP, HSI, IMAP(S), RSYNC, S3, SCP, SSH, TAHOE und WEBDAV(S) unterstützt. Die Backups werden vor der Übertragung lokal mit GPG verschlüsselt. duplicity unterstützt das Erstellen von inkrementalen Backups und erstellt mit entsprechenden Optionen automatisch wieder ein Full-Backup nach einer angegebenen Zeitspanne.

Unter Ubuntu kann duplicity direkt aus den Paketquellen installiert werden. Falls man den Backup-Space per FTP erreichen möchte, ist zusätzlich das Paket NcFTP erforderlich:

Ein einfaches Backup kann anschließend mit folgendem Kommando durchgeführt werden:

Mit der ersten Zeile wird ein Passwort festgelegt, mit dem der Backup-Satz verschlüsselt wird. In der zweiten Zeile wird das Passwort des FTP-Servers gesetzt. Dieses sollte nicht direkt in der Backup-URL eingegeben werden, denn dann wäre es von anderen Usern auf dem Server durch die Ausgabe der Prozessliste lesbar.

Ein Restore einzelner Dateien ist ebenso möglich:

Mit diesem Skript wird der letzte gesicherte Stand der Datei apt/sources.list aus dem Backup-Satz /etc nach /home/user/sources.list zurückgespeichert. Mit folgendem Kommando kann z.B. der Stand von vor vier Tagen zurückgespeichert werden (vorausgesetzt, man erstellt tägliche Backups):

Ein komplettes Beispiel aus dem Ubuntu-Hilfeforum kann als Grundlage für eigene Anpassungen dienen:

Die Option --full-if-older-than erstellt nach der angegebenen Zeitspanne automatisch wieder ein Full-Backup. Ist die Zeitspanne zum letzten Full-Backup noch nicht überschritten, werden inkrementale Backups erstellt. Das Kommando remove-older-than aus dem zweiten Teil des Skripts sorgt anschließend dafür, dass Backups, die älter als 6 Monate sind gelöscht werden.

Bewerte diesen Beitrag