Voglio eseguire uno script quando collego un dispositivo nella mia macchina Linux. Ad esempio, esegui con xinput
il mouse o uno script di backup su una determinata unità.
Ho visto molti articoli su questo, più recentemente qui e qui . Ma non riesco proprio a farlo funzionare.
Ecco alcuni semplici esempi che cercano di ottenere almeno un tipo di risposta.
/etc/udev/rules.d/test.rules
#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
/usr/local/bin/test.sh
#!/usr/bin/env bash
echo touched >> /var/log/test.log
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
echo ${DEVICE} >> /var/log/test.log
fi
La cartella delle regole è controllata da inotify
e dovrebbe essere immediatamente attiva. Continuo a sostituire tastiera, mouse, tablet, memory stick e unità USB, ma niente. Nessun file di registro toccato.
Ora, quale sarebbe il modo più semplice per sapere almeno qualcosa che funziona? È più facile lavorare da qualcosa che funziona piuttosto che da qualcosa che non lo è.
3.5.0-23-generic
.
udevadm trigger
o collegato un dispositivo per applicare la nuova regola?