The following steps set up a backup for a particular USB drive every time it is inserted. Very useful for avoiding the perils of working directly from a flash drive on multiple computers.
Create the backup script that uses duplicity:
/usr/local/bin/usb_drive_backup.sh
#!/bin/bash DRIVE_NAME=USBDRIVE BACKUP_DIR=/home/username/BACKUPS/USBDriveBackup sleep 4 duplicity incremental /media/username/USBDRIVE file://$BACKUP_DIR --no-encryption >> $BACKUP_DIR/log.txt if [ $? -eq 0 ]; then echo "## Backup complete `date`" >> $BACKUP_DIR/log.txt echo fi
/usr/local/bin/usb-backup-in_udev
#!/bin/bash /usr/local/bin/usb_drive_backup.sh &
Set up the udev rule to run the backup script every time the drive is inserted:
Find the device ID
$ lsusb Bus 002 Device 002: ID 0930:1400 Toshiba Corp. Memory Stick 2GB ...
/etc/udev/rules.d/00-usb-backup.rules
ACTION=="add", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1400", ENV{XAUTHORITY}="/home/username/.Xauthority", ENV{DISPLAY}=":0", OWNER="username", RUN+="/usr/local/bin/usb-backup-in_udev"
Restoring the backup:
duplicity restore file:///home/username/BACKUPS/USBDriveBackup ./RestoredFiles/ --no-encryption