Create Udev rule
SUBSYSTEM=="block", KERNEL=="sd*1", ACTION=="add", RUN="/usr/sbin/usb_autorun.sh %E{ID_FS_LABEL} %E{ID_FS_UUID}" >
Create autorun wrapper
#!/bin/bash SCRIPT=autorun.sh autorun() { if [ -z ${1} ]; then FILE=/media/${2}/${SCRIPT} else FILE=/media/${1}/${SCRIPT} fi sleep 10 if [ -f ${FILE} ]; then /bin/bash ${FILE} fi } autorun $@ & >
Create autorun.sh script on your USB device (example)
#!/bin/bash USER=$(who | cut -d" " -f1 | head -1) MAILTO="YOU@YOUR_DOMAIN.COM" LOG="${0%/*}/backup.$(date -I).log" CMD="/bin/bash ${0%/*}/backup.sh | tee -a ${LOG}" if [ -f /home/"${USER}"/.Xauthority ]; then # try to open xterm export XAUTHORITY=/home/${USER}/.Xauthority export DISPLAY=:0.0 notify-send -i drive-harddisk-usb "Backup" "USB backup started" xterm -e ${CMD} notify-send -i dialog-ok "Backup" "USB backup completed" else # no X11, run on console ${CMD} fi # send log by email if sendmail available if [ -x /usr/sbin/sendmail -a -n "${MAILTO}" ]; then # change user for nullmailer NULLMAILER_USER=info echo "Subject: Backup Log from ${HOSTNAME}" | cat - ${LOG} | sendmail ${MAILTO} fi >