У меня есть ряд жестких дисков, которые повернуты для удаленного резервного копирования. Существует несколько шагов, которые должны быть выполнены, когда один из дисков повторно вставляется, который я прокрутил в простой сценарий удара. Я хотел бы выполнить сценарий автоматически, когда один из дисков заменяется в горячем режиме в.
Идеально у меня был бы список дискового идентификатора (/dev/disk/by-id/...
) для дисков, которые должны инициировать сценарий; то, когда один из них вставляется, сценарий был бы, работало, и идентификатор определенного диска будет передан в в качестве параметра. Как альтернатива это было бы достаточно хорошо, чтобы иметь копию сценария на диск и иметь каждый сценарий, работал за его соответствующим диском.
Я выполняю Сервер Ubuntu 14.04 LTS и просматривал подобные вопросы, связанные с Картами памяти, и смотрю на udev
и hotplug
как две системы, которые я должен буду, вероятно, использовать, но надеялся, что кто-то может указывать на меня на определенное сжатое решение для моих потребностей.
Мой обычный подход к написанию правил udev - найти что-то похожее на то, что мне нужно, в / lib / udev
и дополнить это поиском в Google или беглым просмотром страниц руководства.
Для В вашем случае большую часть моджо можно найти в /lib/udev/rules.d/60-persistent-storage.rules
. Я придумал следующее правило:
ACTION=="add", SUBSYSTEM=="block", ENV{ID_SERIAL}=="XXXXXXXX", PROGRAM="/opt/bin/myscript $env{ID_SERIAL}"
Вам понадобится одно правило для каждого диска, и ваш сценарий получит серийный номер диска в качестве параметра.
Я использую здесь только серийный номер диска, этого должно быть достаточно, но вы можете перестройте весь идентификатор, как показано в / dev / disk / by-id
, с помощью этой строки:
$env{ID_BUS}-$env{ID_SERIAL}
Чтобы проверить серийный номер диска, вы можете использовать:
udevadm info -n /dev/disk/by-id/XXXXXXXX | grep -i SERIAL