Encrypted bandwidth-efficient backup using the rsync algorithm
Duplicity backs directories by producing encrypted tar-format volumes and uploading them to a remote or local file server. Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Because duplicity uses GnuPG to encrypt and/or sign these archives, they will be safe from spying and/or modification by the server.
The duplicity package also includes the rdiffdir utility. Rdiffdir is an extension of librsync's rdiff to directories---it can be used to produce signatures and deltas of directories as well as regular files. These signatures and deltas are in GNU tar format.
Duplicity is still in Beta. As any software, it may still have a few bugs, but will work for normal usage and is in use now for large personal and corporate backups. If you have questions try the mailing list. Bug reports and bug fixes can be entered through the Launchpad project page.
In theory many protocols for connecting to a file server could be supported; so far ssh/scp, local file access, rsync, ftp, HSI, WebDAV, Tahoe-LAFS, and Amazon S3 have been written. Currently duplicity supports deleted files, full unix permissions, directories, and symbolic links, fifos, and device files, but not hard links.
The current stable release is 0.6.22, released August 22, 2013.
- Tarball: duplicity-0.6.22.tar.gz
- i386 RPM: duplicity-0.6.22-0.fdr.6.i386.rpm
- Source RPM: duplicity-0.6.22-0.fdr.6.src.rpm
Older versions are also available for the budding historians in the downloads area.
Edgar Soldin maintains duply (formerly known as ftplicity), a shell front end that simplifies the usage by keeping settings for backup jobs in profiles. It supports pre/post backup scripts and executing multiple commands in a batch mode.
Duplicity requires a POSIX-like operating system. It is best used under GNU/Linux. It also requires:
- Python v2.4 or later (Python Home)
- librsync v0.9.6 or later (librsync Home)
- GnuPG for encryption (GnuPG Home)
- NcFTP version 3.1.9 or later (NcFTP Home)
- Boto 1.6a or later (Boto Home)
If you install from the source package, you will also need:
- Python development files, normally found in module 'python-dev'
- librsync development files, normally found in module 'librsync-dev'