Quiero ejecutar un script cuando conecto un dispositivo en mi máquina Linux. Por ejemplo, ejecute con xinput
el mouse o un script de respaldo en una determinada unidad.
He visto muchos artículos sobre esto, más recientemente aquí y aquí . Pero simplemente no puedo hacer que funcione.
Aquí hay algunos ejemplos simples que intentan obtener al menos algún tipo de respuesta.
/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 carpeta de reglas es vigilada por inotify
y debe estar activa de inmediato. Sigo desconectando mi teclado, mouse, tableta, tarjeta de memoria y unidad USB, pero nada. Ningún archivo de registro tocado.
Ahora, ¿cuál sería la forma más simple de al menos saber que algo está funcionando? Es más fácil trabajar desde algo que funciona que desde algo que no funciona.
3.5.0-23-generic
.
udevadm trigger
o conectó un dispositivo para aplicar la nueva regla?