Duplicity is a versatile backup tool that offers incremental, compressed, encrypted, and versioned backups. It provides a robust solution for securely backing up data while optimizing storage space. Duplicity supports various backend services for storing backups, making it flexible and adaptable to different storage options.
Here are the key features and aspects of Duplicity:
- Incremental backups: Duplicity performs incremental backups, which means that after the initial backup, it only backs up the changes or additions to the data. This approach reduces the backup time and storage requirements by capturing only the modified portions of files or new files since the last backup.
- Compression: Duplicity compresses the data before storing it, reducing the size of the backup files. This compression helps optimize storage space and enables faster backups and restores, especially when transferring data over networks.
- Encryption: Duplicity prioritizes data security by encrypting the backups. It uses strong encryption algorithms like GnuPG (GNU Privacy Guard) to protect the data during transit and storage. Encryption ensures that the backed-up data remains confidential and secure, even if the backup storage is compromised.
- Versioning: Duplicity supports versioning, allowing users to keep multiple versions of their files. This feature enables easy restoration of previous versions, which can be helpful in scenarios where data corruption or accidental modifications occur.
- Backend services: Duplicity offers support for various backend services as storage destinations for the backups. It can upload backups to popular cloud storage providers like Amazon S3, Google Drive, Dropbox, and more. Additionally, Duplicity supports traditional remote file servers using protocols like FTP, SSH, SCP, and rsync.
- Command-line interface: Duplicity is primarily operated through the command-line interface, providing users with a flexible and scriptable backup solution. It offers a wide range of options and parameters to configure backup settings, schedule backups, and perform restores.
- Bandwidth efficiency: Duplicity employs techniques like binary diffs and data deduplication to minimize the amount of data transferred during backups. This approach reduces the bandwidth requirements and allows for efficient backups, particularly when handling large data sets over limited network connections.
- Integrity checks: Duplicity performs integrity checks during the restore process to ensure the consistency and integrity of the backed-up data. It verifies the data against the stored signatures, providing an additional layer of data protection and reliability.
Duplicity is a reliable backup tool that combines efficient incremental backups, compression, encryption, and versioning to provide a comprehensive backup solution. Its support for various backend services enables users to choose the storage option that best suits their needs. Whether used for personal backups or in enterprise environments, Duplicity offers a flexible and secure approach to data backup and recovery.
Please note that Duplicity may have specific command-line options and configuration settings that can be explored through the tool’s documentation or by using the built-in help command (e.g., “duplicity –help”).
duplicity Command Examples
1. 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/
2. Backup a directory to Amazon S3, doing a full backup every month:
# duplicity --full-if-older-than 1M --use-new-style s3://bucket_name[/prefix]
3. 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
4. List the available backups:
# duplicity collection-status "file://absolute/path/to/backup/directory"
5. 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
6. Restore a subdirectory from a GnuPG-encrypted local backup to a given location:
# PASSPHRASE=gpg_key_password duplicity restore --encrypt-key gpg_key_id --file-to-restore /relative/path/restoredirectory file://absolute/path/to/backup/directory /path/to/directory/to/restore/to