Bash script to detect when my USB is plugged in and to then sync it with a Directory

user180825 picture user180825 · Nov 15, 2010 · Viewed 20.4k times · Source

Is there a Bash script and/or daemon that I can write that will detect a specific USB drive and then sync that drive with a directory?

Answer

slybloty picture slybloty · Nov 16, 2011

For future reference, here's how to run a bash script upon detection of a USB drive.

Connect your device and run lsusb to retrieve the device's info. You should see something similar to this:

$ lsusb
Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC

In this case, the vendor ID of the device is 0bc2 and the product ID is 2100.

Now you can create your UDEV rule using a text editor of your choice.

$sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules

And add this:

ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0bc2", SYSFS{idProduct}=="2100", RUN+="/home/myhome/my_script"

/home/myhome/my_script is the path to your script which it would do whatever you want.

To make sure the detection script will execute right away, run this command to reload the UDEV rules:

$sudo udevadm control --reload-rules

This was tested on Fedora 14.