Обнаружение новых 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"

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

Другие вопросы по тегам