- Duply is a frontend for the mighty duplicity magic. Duplicity is a python based shell application that makes encrypted incremental backups to remote storages.
Duply is available in the duplyAUR package.
For an overview on how to use Duply, run
The first thing to do is create a profile. Run
duply my_profile create to create a profile named my_profile. Then configure the profile using the file
duply my_profile backup to make backups and
duply my_profile restore restore_directory to restore after configuration is complete.
Set GPG_KEY to encrypt and sign the backup with a GPG key. Set the GPG_PW with the GPG passphrase. See #No GPG Passphrase for details on Duply prompting for the GPG passphrase. Set TARGET for the destination of the backup. Set SOURCE for the base location to backup. See the conf file for information on other Duply backup settings.
GPG_KEY='72AD0468' GPG_PW='password' TARGET='file://my_profile_backup' SOURCE='/tmp/important_files'
duply my_profile backup to backup everything in /tmp/important_files. The first time
duply my_profile backup the user will be prompted for the GPG passphrase so that the key can be exported for safe keeping. Afterwords, Duply should run without prompting for a passphrase.
To exclude files backed up, see the ~/.duply/my_profile/exclude file.
# Backup everything except this directory - **/less_important_files
# Individual files + /tmp/important_files/file1 + /tmp/important_files/file2 # Exclude cache inside directory - /tmp/important_files/directory/cache + /tmp/important_files/directory # Exclude everything else - **
Dupicity exclude requires
** as to match the base directory.
No GPG Passphrase
Because of a bug in the Duply, duplicity will prompt for a GPG passphrase even though it is available from the gpg-agent. Simply pressing return during the prompt will work as the passphrase is not needed to use the key (if the key is cached), or the
DUPL_PARAMS="$DUPL_PARAMS --use-agent" line can be added to the conf.
# Turn on --use-agent option no matter what DUPL_PARAMS="$DUPL_PARAMS --use-agent"
Signing fails using GPG version 2.1.0 or later
Due to changes in recent versions of GPG, this message may occur during backup process:
duply gpg: signing failed: Inappropriate ioctl for device
This can be fixed by uncommenting GPG_OPTS section of Duply's conf file and adding --pinentry-mode loopback argument into it:
~/.duply/my_profile/conf OR /etc/duply/my_profile/conf (if running as root)
It is important to backup the configuration for your profile so that the backup can be recovered. One way to do this automatically is to add a post script which tars the profile after a backup. For example:
#!/bin/bash profile_name=$(basename $CONFDIR) time=$(date +%s) backup_file="$HOME/.duply/duply-$profile_name-"$time".tar.gz" # Archive the profile in the ~/.duply directory. tar -zcvf $backup_file -C $HOME/.duply $profile_name chmod 600 $backup_file
Copy the *.tar.gz file to a secure storage location such as LastPass, KeePass, Bitwarden or an offline USB harddrive. Another option is to archive the profile on a piece of paper as QR code (duply_qr-gitAUR). The configuration file should accessible even if access is lost to the computer being backed up because the whole point of the backup is that it can be recovered even if the computer is lost or destroyed.