Bash script, чтобы обнаружить, когда мой USB подключен, и затем синхронизировать его с каталогом

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

Ответы

Ответ 1

В дальнейшем, здесь, как запустить bash script при обнаружении 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 == "add", SUBSYSTEM == "usb", SYSFS {idVendor} == "0bc2", SYSFS {idProduct} == "2100", RUN + = "/home/myhome/my_script"

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

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

$sudo udevadm control --reload-rules

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

Ответ 2

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

Ответ 3

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