Duplicity creates backups of directories by producing encrypted tar-format volumes and uploading them to a remote or local file server. It uses librsync to create space efficient incremental archives that only record the parts of files that have changed since the last backup, as well as GnuPG to encrypt and/or sign the archives to make them resistant to spying and/or modification by the server.
Duplicity can be used with specific backends to connect to different services. So far SSH/SCP, local file access, rsync, FTP, HSI, WebDAV, Tahoe-LAFS, and Amazon S3 backends have been written.
Currently Duplicity supports deleted files, full Unix permissions, directories, and symbolic links, FIFOs, and device files, but not hard links.