How it should work:
- insert a disk with a partition labelled as backup
- wait until the beep
- remove the disk
To label an ext3/ext4 disk, use
e2label device [newlabel]
Then, create an udev rule that runs your script when you insert a disk with a partition named backup:
echo 'KERNEL=="sd*", ENV{ID_FS_LABEL}=="backup", RUN+="/usr/local/bin/backup.sh"'
>> /etc/udev/rules.d/99-backup.rules
your backup script can be as simple as this:
#!/bin/sh
/bin/mount /dev/disk/by-label/backup /media/backup && \
/usr/bin/rsync -r /home/* /media/backup && \
/bin/umount /media/backup && \
/usr/bin/beep
Watch out, $PATH is not set, you shoud use absolute paths everywhere.
To make it all work, reload udev rules with
udevadm control --reload-rules