Michael Terry, This script (manual-ctrl-c-test.sh) hung expecting a second argument. mikodo@mikodo-desktop:~$ #!/bin/bash mikodo@mikodo-desktop:~$ mikodo@mikodo-desktop:~$ cd /tmp mikodo@mikodo-desktop:/tmp$ rm -rf backup* restore* ~/.cache/duplicity/test-backup1 mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ echo "***** Do not disturb the control backup! " ***** Do not disturb the control backup! mikodo@mikodo-desktop:/tmp$ PASSPHRASE=foo duplicity --name=test-backup1 $1 file:///tmp/backup1 Command line error: Expected 2 args, got 1 Enter 'duplicity --help' for help screen. mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ echo -n "***** Now hit Ctrl-C at random intervals. Hit any key to continue... " ***** Now hit Ctrl-C at random intervals. Hit any key to continue... mikodo@mikodo-desktop:/tmp$ read -e DUMMY echo mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ trap "pkill -INT duplicity" SIGINT mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ RC=4 mikodo@mikodo-desktop:/tmp$ while [ "$RC" == "4" ]; do > PASSPHRASE=foo duplicity --name=test-backup2 --volsize 1 -v5 $1 file:///tmp/backup2 > RC=$? > echo "Exit == $RC" > if [ "$RC" != "4" ] && [ "$RC" != "0" ]; then > echo "Repeat? " > read -e REPLY > if [ "$REPLY" == "Y" ] || [ "$REPLY" == "y" ]; then > RC=4 > continue > else > break > fi > fi > done Command line error: Expected 2 args, got 1 Enter 'duplicity --help' for help screen. Using temporary directory /tmp/duplicity-sD7fa7-tempdir Exit == 2 Repeat? mikodo@mikodo-desktop:/tmp$ trap - SIGINT mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ if [ "$RC" != "0" ]; then > echo "Finishing backup..." > PASSPHRASE=foo duplicity --name=test-backup2 $1 file:///tmp/backup2 > fi Finishing backup... Command line error: Expected 2 args, got 1 Enter 'duplicity --help' for help screen. mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ echo "Restoring backups..." Restoring backups... mikodo@mikodo-desktop:/tmp$ PASSPHRASE=foo duplicity --name=test-backup1 file:///tmp/backup1 /tmp/restore1 Local and Remote metadata are synchronized, no sync needed. Last full backup date: none Traceback (most recent call last): File "/usr/bin/duplicity", line 1241, in with_tempdir(main) File "/usr/bin/duplicity", line 1234, in with_tempdir fn() File "/usr/bin/duplicity", line 1188, in main restore(col_stats) File "/usr/bin/duplicity", line 538, in restore restore_get_patched_rop_iter(col_stats)): File "/usr/bin/duplicity", line 560, in restore_get_patched_rop_iter backup_chain = col_stats.get_backup_chain_at_time(time) File "/usr/lib/python2.6/dist-packages/duplicity/collections.py", line 939, in get_backup_chain_at_time raise CollectionsError("No backup chains found") CollectionsError: No backup chains found mikodo@mikodo-desktop:/tmp$ PASSPHRASE=foo duplicity --name=test-backup2 file:///tmp/backup2 /tmp/restore2 Local and Remote metadata are synchronized, no sync needed. Last full backup date: none Traceback (most recent call last): File "/usr/bin/duplicity", line 1241, in with_tempdir(main) File "/usr/bin/duplicity", line 1234, in with_tempdir fn() File "/usr/bin/duplicity", line 1188, in main restore(col_stats) File "/usr/bin/duplicity", line 538, in restore restore_get_patched_rop_iter(col_stats)): File "/usr/bin/duplicity", line 560, in restore_get_patched_rop_iter backup_chain = col_stats.get_backup_chain_at_time(time) File "/usr/lib/python2.6/dist-packages/duplicity/collections.py", line 939, in get_backup_chain_at_time raise CollectionsError("No backup chains found") CollectionsError: No backup chains found mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ echo "Diff between $1 and /tmp/restore1" Diff between and /tmp/restore1 mikodo@mikodo-desktop:/tmp$ diff -qr $1 /tmp/restore1 2>&1 | grep -v "No such file or directory" diff: missing operand after `/tmp/restore1' diff: Try `diff --help' for more information. mikodo@mikodo-desktop:/tmp$ mikodo@mikodo-desktop:/tmp$ echo "Diff between /tmp/restore1 and /tmp/restore2" Diff between /tmp/restore1 and /tmp/restore2 mikodo@mikodo-desktop:/tmp$ diff -qr /tmp/restore1 /tmp/restore2 2>&1 | grep -v "No such file or directory" mikodo@mikodo-desktop:/tmp$