Скрипт Bash для определения того, подключен ли мой USB, а затем для синхронизации с каталогом - PullRequest
15 голосов
/ 16 ноября 2010

Есть ли сценарий Bash и / или демон, который я могу написать, который обнаружит определенный USB-накопитель и затем синхронизирует этот накопитель с каталогом?

Ответы [ 3 ]

20 голосов
/ 16 ноября 2011

Для дальнейшего использования, вот как запустить скрипт bash при обнаружении USB-накопителя.

Подключите ваше устройство и запустите lsusb, чтобы получить информацию об устройстве.Вы должны увидеть что-то похожее на это:

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

В этом случае идентификатор производителя устройства равен 0bc2, а идентификатор продукта - 2100.

Теперь выВы можете создать свое правило UDEV, используя текстовый редактор по вашему выбору.

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

И добавитьthis:

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

/home/myhome/my_script - это путь к вашему сценарию, который будет выполнять все, что вы хотите.

Чтобы убедиться, что сценарий обнаружения будет выполнен сразу же, запустите этоткоманда для перезагрузки правил UDEV:

$ sudo udevadm control --reload-rules

Это было протестировано в Fedora 14.

6 голосов
/ 16 ноября 2010

Я сам этого не делал, но вы можете попробовать udev правила вроде этого:

# Hitachi SimpleDrive mini, model HTS545050B9A300 (500 GB USB HDD)
SUBSYSTEM=="block", ATTR{size}=="976768002", ATTRS{product}=="SimpleDrive mini", ATTRS{serial}=="2512009121920487", ACTION=="add", RUN+="/lib/udev/local.usb.hdd.sh add $devpath"

Поместите его в /etc/udev/rules.d/90-local.rules или подобное место, что, безусловно, зависит от вашей ОС.

2 голосов
/ 16 ноября 2010

Вот пример Python Deamon, который вы можете использовать для прослушивания, тогда копирование файлов в каталог не должно быть проблемой.

...