Created: 2018-01-22 — modified: 2018-02-03 — tags: bash
Automatically backup files on media mount, using usbmount
Assuming you're using WM, not DE, you probably have installed
usbmount package in order to automatically mount USB sticks and HDDs when they are inserted.
It has nice "autorun" feature which we can use to automatically backup onto some removable harddisks when they are inserted. Assuming you're familiar with my rsync backups script (if not, you always can write your own or use plain rsync).
Simply put this script into
#!/bin/sh ROOT=$UM_MOUNTPOINT/backups.auto test -d $ROOT || exit 0 export ALLOW_FIRST_RUN=1 export CLEAN_DIRS=$ROOT/* export IGNORE_23=1 /root/backup-script.sh /home/ $ROOT/`hostname` sync
Now, if inserted drive has
backups.auto dir with a subdir matching your machine's hostname, it will be used to keep incremental backups of your home dirs.
Remember to remove
ALLOW_FIRST_RUN=1 when it's not needed anymore.
Few notes regarding speed optimisation:
If you're used to run
pumountor using GUI way of "safe disk removal", then you can remove "sync" option from
During first backup to an empty disk, you can consider setting
FS_MOUNTOPTIONS="-fstype=ext4,barrier=0"in the same file (thanks to this blog for researching this). It will make write operation significantly faster, but with danger of losing data in case of power failure (or USB cable disconnect). So it's OK to do in absence of other valuable data on the disk, and makes most sence to do during first, usually longest, backup operation.