duplicity — Verschlüsselte, inkrementelle Backups
Verschlüsselte, bandbreiteneffiziente Backups mit GPG: inkrementelle tar-Archive lokal oder remote (S3, SFTP, FTP, Backblaze B2).
duplicity bündelt drei Dinge, die du bei Backups selten zusammen bekommst: inkrementelle Sicherungen über den rsync-Algorithmus, GPG-Verschlüsselung und ein breites Spektrum an Backends – vom lokalen Verzeichnis über SFTP und FTP bis hin zu S3, Backblaze B2 oder Google Drive. Du sicherst also platzsparend und verschlüsselt an nahezu jedes Ziel, ohne dem Speicheranbieter vertrauen zu müssen. Dieser Guide führt dich durch die wichtigsten Befehle – vom ersten Voll-Backup über die Wiederherstellung bis zum Aufräumen alter Sicherungssätze.
Backups erstellen
duplicity <source> <target> — Erstellt ein inkrementelles Backup (beim ersten Lauf ein Voll-Backup).
duplicity /home/user file:///backup/homeduplicity full <source> <target> — Erzwingt ein Voll-Backup.
duplicity full /var/www file:///backup/wwwduplicity incr <source> <target> — Erzwingt ein inkrementelles Backup.
duplicity incr /var/www file:///backup/wwwduplicity --full-if-older-than <time> <source> <target> — Erstellt ein Voll-Backup, wenn das letzte vollständige älter als die angegebene Zeit ist.
duplicity --full-if-older-than 30D /home/user file:///backup/homeduplicity --exclude '<pattern>' <source> <target> — Schließt Dateien oder Verzeichnisse aus, die auf ein Muster passen.
duplicity --exclude '**/.cache' --exclude '**/node_modules' /home/user file:///backup/homeWiederherstellen
duplicity restore <target> <dest> — Stellt das neueste Backup in ein Verzeichnis wieder her.
duplicity restore file:///backup/home /tmp/restoreduplicity restore --time <time> <target> <dest> — Stellt den Stand eines bestimmten Zeitpunkts wieder her.
duplicity restore --time 3D file:///backup/home /tmp/restoreduplicity restore --file-to-restore <path> <target> <dest> — Stellt eine einzelne Datei oder ein Verzeichnis wieder her.
duplicity restore --file-to-restore Documents/important.pdf file:///backup/home /tmp/important.pdfduplicity --force restore <target> <dest> — Erzwingt die Wiederherstellung (überschreibt vorhandene Dateien).
duplicity --force restore file:///backup/www /var/wwwRemote-Backends
duplicity <source> sftp://<user>@<host>/<path> — Sichert per SFTP auf einen entfernten Server.
duplicity /var/www sftp://backup@server//backup/wwwduplicity <source> s3://s3.<region>.amazonaws.com/<bucket>/<path> — Sichert nach Amazon S3.
duplicity /home/user s3://s3.eu-west-1.amazonaws.com/my-backups/homeduplicity <source> ftp://<user>@<host>/<path> — Sichert auf einen FTP-Server.
duplicity /var/www ftp://backupuser@ftp.example.com/backups/wwwduplicity <source> gdocs://<user>@gmail.com/<folder> — Sichert nach Google Drive.
duplicity /home/user gdocs://user@gmail.com/backups/homeduplicity <source> b2://<account>@<bucket>/<path> — Sichert nach Backblaze B2.
duplicity /data b2://account123@my-bucket/dataVerschlüsselung
PASSPHRASE='<pass>' duplicity <source> <target> — Verschlüsselt mit einer Passphrase (symmetrische GPG-Verschlüsselung).
PASSPHRASE='mysecret' duplicity /data file:///backup/dataduplicity --encrypt-key <gpg-key> <source> <target> — Verschlüsselt mit einem öffentlichen GPG-Schlüssel.
duplicity --encrypt-key ABCD1234 /data file:///backup/dataduplicity --no-encryption <source> <target> — Deaktiviert die Verschlüsselung (für entfernte Ziele nicht empfohlen).
duplicity --no-encryption /data file:///backup/dataVerwaltung & Info
duplicity collection-status <target> — Zeigt Status und Statistik der Backup-Kette an.
duplicity collection-status file:///backup/homeduplicity list-current-files <target> — Listet die Dateien im neuesten Backup auf.
duplicity list-current-files file:///backup/homeduplicity verify <target> <source> — Prüft die Integrität des Backups gegen die Quelldateien.
duplicity verify file:///backup/home /home/userduplicity remove-older-than <time> <target> — Entfernt Backups, die älter als die angegebene Zeit sind (löscht alte Sicherungssätze endgültig).
duplicity remove-older-than 90D --force file:///backup/homeduplicity remove-all-but-n-full <n> <target> — Behält nur die letzten N vollständigen Backup-Ketten (löscht ältere endgültig).
duplicity remove-all-but-n-full 3 --force file:///backup/homeduplicity cleanup <target> — Entfernt verwaiste Backup-Dateien (löscht endgültig).
duplicity cleanup --force file:///backup/home Fazit
duplicity ist eine bewährte Wahl, wenn du verschlüsselte, platzsparende Backups an entfernte Ziele schicken willst, ohne dem Anbieter vertrauen zu müssen. Behandle deine Passphrase oder deinen GPG-Schlüssel besonders sorgfältig: Geht er verloren, sind auch die Backups unwiederbringlich verloren – und übergib PASSPHRASE per Umgebungsvariable nur dort, wo die Prozessliste nicht mitgelesen werden kann. Die aufräumenden Befehle remove-older-than, remove-all-but-n-full und cleanup löschen alte Sicherungssätze endgültig – prüfe das Ziel vor jedem --force zweimal.
Weiterführende Links
- duplicity – offizielle Projektseite – Downloads, Neuigkeiten und Einstieg (englisch)
- duplicity-Handbuch (man page) – vollständige Referenz zu Befehlen, Backends und Optionen (englisch)
Verwandte Kommandos
- borgbackup – deduplizierende, komprimierte und verschlüsselte Backups
- rclone – synchronisiert Dateien mit zahlreichen Cloud-Speichern
- rdiff-backup – inkrementelle Backups im rsync-Stil mit Versionshistorie