I followed this guide to get backups running on my server with Duplicity and Amazon S3: http://www.problogdesign.com/how-to/automatic-amazon-s3-backups-on-ubuntu-debian/
Part of my script was as follows:
duplicity --full-if-older-than 14D --encrypt-key=xxxxxxxx --sign-key=xxxxxxxx --s3-use-new-style --s3-european-buckets --exclude /mnt --exclude /tmp --exclude /proc --exclude /sys / s3+http://bucketname
As you can see, I’ve added the two arguments necessary for using a European bucket (–s3-use-new-style and –s3-european-buckets), and the bucket name I used was for a new bucket that I wanted to create that didn’t yet exist on Amazon S3.
When running my script, I got a broken pipe error:
[Errno 32] Broken pipe
Research on the Duplicity man page (http://duplicity.nongnu.org/duplicity.1.html), revealed the following:
Further note that when creating a new European bucket, it can take a while before the bucket is fully accessible. At the time of this writing it is unclear to what extent this is an expected feature of Amazon S3, but in practice you may experience timeouts, socket errors or HTTP errors when trying to upload files to your newly created bucket. Give it a few minutes and the bucket should function normally.
So I waited, and tried again:
Expected 2 args, got 3
And it seems this is a bug with Duplicity (https://bugs.launchpad.net/duplicity/+bug/517485); the full backup did not run successfully, the incremental backup then tries to run thereafter but cannot because it has nothing to compare the files to, and so fails. (So this error will happen
So, what to do?
Force a full backup, then you can go back to your incremental backups when it completes:
duplicity full --encrypt-key=xxxxxxxx --sign-key=xxxxxxxx --s3-use-new-style --s3-european-buckets --exclude /mnt --exclude /tmp --exclude /proc --exclude /sys / s3+http://bucketname