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/home

duplicity full <source> <target> — Erzwingt ein Voll-Backup.

duplicity full /var/www file:///backup/www

duplicity incr <source> <target> — Erzwingt ein inkrementelles Backup.

duplicity incr /var/www file:///backup/www

duplicity --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/home

duplicity --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/home

Wiederherstellen

duplicity restore <target> <dest> — Stellt das neueste Backup in ein Verzeichnis wieder her.

duplicity restore file:///backup/home /tmp/restore

duplicity restore --time <time> <target> <dest> — Stellt den Stand eines bestimmten Zeitpunkts wieder her.

duplicity restore --time 3D file:///backup/home /tmp/restore

duplicity 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.pdf

duplicity --force restore <target> <dest> — Erzwingt die Wiederherstellung (überschreibt vorhandene Dateien).

duplicity --force restore file:///backup/www /var/www

Remote-Backends

duplicity <source> sftp://<user>@<host>/<path> — Sichert per SFTP auf einen entfernten Server.

duplicity /var/www sftp://backup@server//backup/www

duplicity <source> s3://s3.<region>.amazonaws.com/<bucket>/<path> — Sichert nach Amazon S3.

duplicity /home/user s3://s3.eu-west-1.amazonaws.com/my-backups/home

duplicity <source> ftp://<user>@<host>/<path> — Sichert auf einen FTP-Server.

duplicity /var/www ftp://backupuser@ftp.example.com/backups/www

duplicity <source> gdocs://<user>@gmail.com/<folder> — Sichert nach Google Drive.

duplicity /home/user gdocs://user@gmail.com/backups/home

duplicity <source> b2://<account>@<bucket>/<path> — Sichert nach Backblaze B2.

duplicity /data b2://account123@my-bucket/data

Verschlüsselung

PASSPHRASE='<pass>' duplicity <source> <target> — Verschlüsselt mit einer Passphrase (symmetrische GPG-Verschlüsselung).

PASSPHRASE='mysecret' duplicity /data file:///backup/data

duplicity --encrypt-key <gpg-key> <source> <target> — Verschlüsselt mit einem öffentlichen GPG-Schlüssel.

duplicity --encrypt-key ABCD1234 /data file:///backup/data

duplicity --no-encryption <source> <target> — Deaktiviert die Verschlüsselung (für entfernte Ziele nicht empfohlen).

duplicity --no-encryption /data file:///backup/data

Verwaltung & Info

duplicity collection-status <target> — Zeigt Status und Statistik der Backup-Kette an.

duplicity collection-status file:///backup/home

duplicity list-current-files <target> — Listet die Dateien im neuesten Backup auf.

duplicity list-current-files file:///backup/home

duplicity verify <target> <source> — Prüft die Integrität des Backups gegen die Quelldateien.

duplicity verify file:///backup/home /home/user

duplicity 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/home

duplicity 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/home

duplicity 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.

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