Обнаружение новых USB-устройств с помощью bash?
Я пишу сценарий bash, который должен определить, когда вставлено USB-устройство хранения данных, и назначить его переменной, которая в противном случае обычно выглядит примерно так: usb=/dev/sdb
,
У меня есть несколько абстрактных идей, которые включают использование watch
, наподобие if
/ while
циклическая конструкция, и, возможно, lsblk -o kname
/ lsblk -o pkname
; но мне еще предстоит полностью осознать все, что подходит.
Как лучше всего это реализовать?
1 ответ
Вы можете запустить скрипт, используя UDEV
, "udev также обрабатывает все события пользовательского пространства, возникающие при добавлении или удалении аппаратных устройств в систему" (с http://wiki.archlinux.org/index.php/Udev)
Внутри файла с именем: /etc/udev/rules.d/10-usb.rules
добавить следующее:
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/path/to/script.sh"
Примечание. Возможно, вам придется немного изменить расположение файла в зависимости от вашего дистрибутива. Также обратите внимание: вам может потребоваться перезагрузка, прежде чем правило вступит в силу.