sleep $(( 60 - 10#$(date +%S) ))
спит до следующей полной минуты. Не забудьте префикс 10#
! В противном случае ваш код будет интерпретировать «08» и «09» как недопустимые ссылки на восьмеричное число.
Или вы можете запретить команде даты дополнять секунды «0», указав после «%» «-»sleep $(( 60 - $(date +%-S) ))
Ответ такой же, как и в Как запускать пользовательские сценарии при подключении USB-устройства -? . Вы просто не указываете, что вам не нужно:
Оригинал:
KERNEL=="sd*", ATTRS{vendor}=="Yoyodyne", ATTRS{model}=="XYZ42", ATTRS{serial}=="123465789", RUN+="/pathto/script"
Без привязки к производителю, модели, серийному номеру:
KERNEL=="sd*", RUN+="/pathto/script"
В сценарий можно передавать параметры, например, %k заменяется именем устройства.
Полный список и дополнительную информацию см. на справочной странице .
И я предлагаю использовать:
$ udevadm monitor
Для отладки правил.