Сценарий Bash для определения, когда мой USB подключен, а затем для его синхронизации с каталогом.

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


person Community    schedule 15.11.2010    source источник


Ответы (3)


Для справки в будущем, вот как запустить сценарий 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

И добавьте это:

ACTION == "добавить", 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.

person slybloty    schedule 16.11.2011
comment
Я использовал это с Crunchbang Linux 11 (waldorf) [на основе debian], но мне пришлось изменить «SYSFS» на «ATTR», чтобы заставить его работать. Этот парень опубликовал хороший метод отладки udev ... jpichon.net / blog / 2011/12 / debugging-udev-rules - person neildaemond; 01.11.2013

Сам я этого не делал, но вы можете попробовать 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 или аналогичное место, безусловно, в зависимости от вашей ОС.

person Piotr Findeisen    schedule 15.11.2010
comment
Можно ли использовать UUID и отказаться от всех остальных этих атрибутов? - person Cascabel; 16.11.2010
comment
извините, я не знаю - это пока в моем собственном списке дел :) - person Piotr Findeisen; 16.11.2010
comment
Привет. Оно работает. Спасибо. Что насчет того, когда он отключен? Изменение добавления на удаление не помогло. - person Mohammad Rahimi; 31.01.2021