Duplicity ist ein Backuptool für Linux/Unix speziell für die Nutzung von Online-Speicherplatz. Es bietet transparente Ver- und Entschlüsselung mit OpenPGP und überträgt nur geänderte Daten, um Traffic und Zeitbedarf minimal zu halten.
Debian/Ubuntu stellen in der Regel alles Nötige für die Installation in den Repositories bereit.
aptitude spült es auf die Platte:
> sudo aptitude install duplicity
Duplicity ist ein Kommandozeilen Tool. Ein verschlüsseltes Backup schiebt man mit folgendem Kommando auf den Server:
> duplicity Verz BackupAddresse
Vom lokalen Verzeichnis
Verz wird ein Backup erstellt, mit OpenPGP symmetrisch verschlüsselt und unter der Backup Adresse abgelegt. Ein vorhandenes Backup wird aktualisiert. Das Passwort für die Verschlüsselung wird entweder beim Start des Programms abgefragt oder es wird die Environment Variable $PASSPHRASE verwendet. Um das Backup mit
cron zu automatiiseren, kann man ein kleines Shellscript schreiben:
#!/bin/sh
PASSPHRASE="gutes_passwort"
duplicity Verz BackupAddresse
Möchte man statt der symmetrischen Verschlüsselung einen OpenPGP-Key nutzen, verwendet man die Option
--encrypt-key mit der ID oder Mail-Adresse des OpenPGP Key. Diese Option kann mehrfach angegeben werden, um mehreren Teilnehmern ein Restore des Backups zu erlauben.
> duplicity --encrypt-key="0x12345670" Verz BackupAddresse
Die
BackupAdresse kodiert das Übertragungsprotokoll, den Server und das Verzeichnis auf dem Server. Duplicity kann mit vielen Protokollen umgehen. BackupAdressen haben folgenden Aufbau:
- Alle Anbieter von Online-Speicherplatz unterstützen webdav oder die SSL-verschlüsselte Übertragung mit webdavs:
webdavs://user[:password]@server.tld/dir
- Amazon S3 cloud services werden unterstützt:
s3://server/bucket_name[/prefix]
- Man kann sein IMAP-Postfach für das Backup nutzen, möglichst mit SSL-verschlüsselter Verbindung. Diese Variante ist nicht sehr performant viele Mail-Provider sehen das garnicht gern:
imaps://user[:password]@mail.server.tld
- Das sftp-Protokoll (ssh) ist vor allem für eigene Server interessant. Loginname und Passwort werden ebenfalls in der Adresse kodiert. Statt Passwort sollte man besser einen SSH-Key nutzen und den Key mit ssh-add vorher freischalten.
ssh://user[:password]@server.tld[:port]/dir
- scp und rsync können ebenfalls für die Übertragung zum Server genutzt werden:
scp://user[:password]@server.tld[:port]/dir
rsync://user[:password]@server.tld[:port]/dir
Das Verzeichnis bei rsync ist relativ zum Login-Verzeichnis. Um einen absoluten Pfad auf dem Server anzugeben, schreibt man 2 Slash, also //dir.
Ein
Restore erfolgt nur in ein leeres Verzeichnis! Es ist ein neues Verzeichnis zu erstellen. Beim Aufruf zur Wiederherstellung der Daten sind BackupAdresse und lokales Verzeichnis zu tauschen. Weitere Parameter sind nicht nötig.
> mkdir /home/user/restore
> duplicity BackupAddresse /home/user/restore
Weitere Informationen findet man in der manual page von dublicity.