--- title: "Duplicity With Wasabi" slug: "how-do-i-use-duplicity-with-wasabi" updated: 2026-09-16T18:25:18Z published: 2026-09-16T18:25:18Z canonical: "docs.wasabi.com/how-do-i-use-duplicity-with-wasabi" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.wasabi.com/llms.txt > Use this file to discover all available pages before exploring further. # Duplicity With Wasabi Wasabi has been validated for use with Duplicity. [Duplicity](https://duplicity.us) backs up directories by producing encrypted tar-format volumes and uploading them to a remote or local file server and cloud storage providers. ## 1. Requirements - Duplicity installed - An active Wasabi account - Wasabi Bucket - See our [](https://docs.wasabi.com/docs/working-with-buckets-and-objects) - [Access & Secret Key Pair - See our](https://docs.wasabi.com/docs/working-with-buckets-and-objects) [Access Keys Guide](https://docs.wasabi.com/docs/creating-a-user-account-and-access-key) ### 2. Configuring a Backup Job There are many ways to configure the scripts for the backup jobs. This section references an example configuration from this [article](https://easyengine.io/tutorials/backups/duplicity-amazon-s3/). 2.1. Log in to the server with Duplicity installed. Create a backup script using the following command. ```powershell vim /usr/local/sbin/backup.sh ``` 2.2. Add the following code to the backup.sh script. Provide the Wasabi account and bucket details for the following parameters. - AWS_ACCESS_KEY_ID="XXXXXX" <---**provide your Wasabi access key.** - AWS_SECRET_ACCESS_KEY="XXXXXXX" <---- **provide your Wasabi secret key** - PASSPHRASE-"****" <-----provide a password to encrypt the backups - DEST="s3://s3.us-west-1.wasabisys.com/duplicity-2/" <--- **endpoint URL of the Wasabi region, followed by the bucket name.** ***Note:*** *This script is an example; modify it per your requirements.* ```powershell #!/bin/bash # Export some ENV variables so you don't have to type anything export AWS_ACCESS_KEY_ID="XXXXXX" export AWS_SECRET_ACCESS_KEY="XXXXXXX" export PASSPHRASE="*****" # The S3 destination followed by bucket name DEST="s3://s3.us-west-1.wasabisys.com/duplicity-2/" # Set up some variables for logging LOGFILE="/var/log/duplicity/backup.log" DAILYLOGFILE="/var/log/duplicity/backup.daily.log" FULLBACKLOGFILE="/var/log/duplicity/backup.full.log" HOST=`hostname` DATE=`date +%Y-%m-%d` TODAY=$(date +%d%m%Y) is_running=$(ps -ef | grep duplicity | grep python | wc -l) if [ ! -d /var/log/duplicity ];then mkdir -p /var/log/duplicity fi if [ ! -f $FULLBACKLOGFILE ]; then touch $FULLBACKLOGFILE fi if [ $is_running -eq 0 ]; then # Clear the old daily log file cat /dev/null > ${DAILYLOGFILE} # Trace function for logging, don't change this trace () { stamp=`date +%Y-%m-%d_%H:%M:%S` echo "$stamp: $*" >> ${DAILYLOGFILE} } # How long to keep backups for OLDER_THAN="1M" # The source of your backup SOURCE=/ FULL= tail -1 ${FULLBACKLOGFILE} | grep ${TODAY} > /dev/null if [ $? -ne 0 -a $(date +%d) -eq 1 ]; then FULL=full fi; trace "Backup for local filesystem started" trace "... removing old backups" duplicity remove-older-than ${OLDER_THAN} ${DEST} >> ${DAILYLOGFILE} 2>&1 trace "... backing up filesystem" duplicity \ ${FULL} \ --include=/var/rsnap-mysql \ --include=/var/www \ --include=/etc \ --include=/home/user1/ \ --exclude=/** \ ${SOURCE} ${DEST} >> ${DAILYLOGFILE} 2>&1 trace "Backup for local filesystem complete" trace "------------------------------------" # Append the daily log file to the main log file cat "$DAILYLOGFILE" >> $LOGFILE fi ``` **Note:** This configuration example uses Wasabi’s us-west-1 storage region. To use other Wasabi storage regions, use the appropriate Wasabi service URL as described in our [Wasabi Service URLs article](https://docs.wasabi.com/docs/what-are-the-service-urls-for-wasabis-different-storage-regions). 2.3. Run the backup job by running the following command. ```powershell bash /usr/local/sbin/backup.sh ``` ### 3. Configuring a Restore Job 3.1. Create a restore script using the following command. ```powershell vim /usr/local/sbin/restore.sh ``` 3.2 Add the following code to the script. ```powershell #!/bin/bash # Export some ENV variables so you don't have to type anything export AWS_ACCESS_KEY_ID="5V5RQJTUGBPO3W7FGXXB" export AWS_SECRET_ACCESS_KEY="h57aWfAguptJf3LHwezHM5aZ05VDa63qfgMCFNjy" export PASSPHRASE="wasabi" # The S3 destination followed by bucket name DEST="s3://s3.us-west-1.wasabisys.com/duplicity-2/" # Your GPG key #GPG_KEY=YOUR_GPG_KEY if [ $# -lt 3 ]; then echo "Usage $0   "; exit; fi duplicity \ --restore-time $1 \ --file-to-restore $2 \ ${DEST} $3 ``` **Note:** This configuration example uses Wasabi’s us-west-1 storage region. To use other Wasabi storage regions, use the appropriate Wasabi service URL as described in our [Wasabi Service URLs article](https://docs.wasabi.com/docs/what-are-the-service-urls-for-wasabis-different-storage-regions). 3.3. Run the following command to perform a restore. ```plaintext bash /usr/local/sbin/restore.sh ```