duplicity
Create incremental, compressed, encrypted and versioned backups.
Can also upload the backups to a variety of backend services.
It is worth mentioning that depending on the version, some options may not be available (e.g. --gio in 2.0.0).
More information: https://duplicity.gitlab.io.
- Backup a directory via FTPS to a remote machine, encrypting it with a password:
FTP_PASSWORD=ftp_login_password PASSPHRASE=encryption_password duplicity path/to/source/directory ftps://user@hostname/target/directory/path/
- Backup a directory to Amazon S3, doing a full backup every month:
duplicity --full-if-older-than 1M s3://bucket_name[/prefix]
- Delete versions older than 1 year from a backup stored on a WebDAV share:
FTP_PASSWORD=webdav_login_password duplicity remove-older-than 1Y --force webdav[s]://user@hostname[:port]/some_dir
- List the available backups:
duplicity collection-status "file://absolute/path/to/backup/directory"
- List the files in a backup stored on a remote machine, via SSH:
duplicity list-current-files --time YYYY-MM-DD scp://user@hostname/path/to/backup/dir
- Restore a subdirectory from a GnuPG-encrypted local backup to a given location:
PASSPHRASE=gpg_key_password duplicity restore --encrypt-key gpg_key_id --path-to-restore relative/path/restoredirectory file://absolute/path/to/backup/directory path/to/directory/to/restore/to