Duplicity – Das Backup-Tool für Linux mit Pfiff
Duplicity ist ein Backup-Tool, das meiner Meinung nach Rsync perfektioniert. Doch was ist jetzt Rsync?
Rsync ist eine kleine Erweiterung für die Kommandozeile, dass Ordner lokal oder über SSH synchronisiert. Der Clou: Durch die vielfältigen Einstellmöglichkeiten lässt sich schnell und einfach ein inkrementelles Backup erstellen.
Ein Anwendungsbeispiel wäre, dass die Daten von Webseiten auf einem anderen Server inklusive Veränderungen für 60 Tage archiviert werden. Mittels SSH werden die Daten sicher über das Internet übertragen. Was fehlt? Die Verschlüsselung eben dieser Daten.
Duplicity schafft hier Abhilfe. Basierend auf Rsync und NcFTP wurde in Duplicity eine Verschlüsselung eingebaut. Vor jedem Backup werden die lokalen Daten verschlüsselt in Archiven gespeichert. Diese werden anschließend übertragen. NcFTP erlaubt es Duplicity die Daten via FTP zu übertragen. Somit kann jeder Webspace mit FTP Zugang für Backups verwendet werden.
Die Installation:
sudo apt-get install duplicity sudo apt-get install ncftp
Würde man Duplicity jetzt starten, kann es sein das ein Fehler auftritt wie beispielsweise:
Import of duplicity.backends.giobackend Failed:
Um das zu vermeiden ist es notwendig noch zwei weitere Abhängigkeiten zu installieren:
sudo apt-get install python-paramiko python-gobject-2
Nun ist alles bereit für das erste Backup. Im folgenden Beispiel wird das Rootverzeichnis „/“ als Speicherort genutzt und per FTP übertragen.
export PASSPHRASE=SICHERES-PASSWORT export FTP_PASSWORD=FTP-PASSWORT duplicity / ftp://FTP-USER@backupspace.de/duplicity/ --exclude /proc/ --exclude /dev/pts/ --exclude /sys/ --exclude /tmp/ --full-if-older-than 1M duplicity remove-older-than 6M --force ftp://backupspace.de/duplicity/ duplicity cleanup --force --force ftp://backupspace.de/duplicity/ unset PASSPHRASE unset FTP_PASSWORD
In Zeile 1 und 2 müssen „SICHERES-PASSWORT sowie „FTP-PASSWORT“ mit den entsprechenden Passwörtern ersetzt werden.
In Zeile 3 wird mit „/“ das Rootverzeichnis für das Backup angegeben. Danach folgt mit „ftp://FTP-USER@DOMAIN/Ordner“ die Angabe des Ftp Users und Backupspeichers sowie in welchem Ordner das Backup angelegt werden soll. Die Exclude Anweisungen sorgen dafür, dass unwichtige Ordner vom Backup ausgeschlossen werden . Dies ist zum Beispiel bei dem temporären Ordner der Fall. Zum Schluss folgt mit „–full-if-older-than 1M“ die Angabe, dass nach jedem Monat ein volles Backup angelegt werden soll.
Welchen Grund hat das? Duplicity legt ein inkrementelles Backup an. Möchte man eine Datei von vor vier Monaten wieder herstellen, müssen Archive von vier Monaten übertragen/ durchsucht werden. Duplicity legt zwar einen Index an, allerdings ist die Datenmenge für eine schnelle Wiederherstellung zu groß. Deswegen ist es sinnvoll beispielsweise jeden Monat ein komplett neues Backup erstellen zu lassen. Das alte bleibt dennoch erhalten.
In Zeile 4 und 5 wird der Speicherplatz der Backups aufgeräumt. Alle Backups die älter als sechs Monate sind, werden gesäubert und damit gelöscht. Die letzten beiden Zeilen sorgen dafür, dass die gespeicherten Passwörter in den beiden Variablen aus Sicherheitsgründen gelöscht werden.
Um die Daten wieder herzustellen genügt es folgende Zeilen auszuführen:
export PASSPHRASE=SICHERES-PASSWORT export FTP_PASSWORD=FTP-PASSWORT duplicity --file-to-restore var/www/testseite.de ftp://FTP-USER@backupspace.de/duplicity /backups/test unset PASSPHRASE unset FTP_PASSWORD
In Zeile 3 wird zuerst der gewünschte Ordner/ die Datei zur Wiederherstellung angegeben. Danacht folgt der Ort des Backup und wohin dieses gesichert werden soll. Nach Bedarf kann vor „–file-to-restore“ noch der Parameter „-t4D“ gehängt werden. Damit werden die Daten von vor 4 Tagen wieder hergestellt.
Duplicity leistet jeden Tag gute Arbeit und durch die Verschlüsselung kann man die Daten auch auf anderen, fremden Server sichern, ohne sich Sorgen darüber machen zu müssen, dass jeder die Daten einsehen kann.
Bei Fragen oder Anregungen kann man mir gerne einen Kommentar da lassen! ;)
Weiterführende Informationen: