У меня есть сервер Ubuntu с внешним жестким диском USB.
Я просто хочу запускать скрипт всякий раз, когда подключен жесткий диск.
Каким был бы оптимальный способ добиться этого?
Вы можете добавить правило udev для вашего конкретного устройства - для этого создайте файл с именем /etc/udev/010custom.rules (или что-то подобное; просто убедитесь, что численно он наименьший в каталоге). Содержимое файлов будет:
BUS="usb", SYSFS{idVendor}="**IDVENDOR**", SYSFS{product}="**PRODUCT**", NAME="usb/%k", SYMLINK="DEVICE"
RUN+="/path/to/your/script"
Замените выделенные жирным шрифтом ключевые слова значениями для вашего устройства из lsusb
:
Шина 005 Устройство 002: ID 0b05: b700 ASUSTek Computer, Inc. Broadcom Bluetooth 2.1
Первое поле, выделенное жирным шрифтом, - это IDVENDOR, а второе, выделенное жирным шрифтом, - это PRODUCT.
Что касается DEVICE, вы можете определить это сами; он создаст / dev / node, который является символической ссылкой на любое устройство, которое соответствует указанным выше критериям (поэтому, если вы поместите foobar в качестве SYMLINK, udev создаст / dev / foobar, который является символической ссылкой на ваше USB-устройство).
Примечание: Я сам не пробовал, так как у меня нет съемных USB-устройств, но он должен работать. Если у вас возникли проблемы, проверьте правила в документации udev.
Вероятно, вы захотите посмотреть udev
. К сожалению, вы только что стали свидетелями того, как я исчерпал свои знания об этом.