Есть ли 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
Вот пример, который вы можете использовать для прослушивающей части, тогда копирование файлов в ваш каталог не должно быть проблемой.