GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo ejecutar un script cuando se conectan o eliminan dispositivos USB mediante UDEV

La publicación describe los pasos para crear reglas UDEV que ejecutan un script específico cuando se conecta o retira un dispositivo USB. Podemos usar la herramienta udevadm para ver la información y las propiedades cuando se conecta o se quita un dispositivo. Usando el “subsystem-match=SUBSYSTEM ” Podemos determinar el tipo de dispositivo que está conectado/retirado.

1. Por ejemplo, en este caso con un SUBSISTEMA USB, puede ejecutar el siguiente comando:

# udevadm monitor --kernel --property --subsystem-match=usb
monitor will print the received events for:
KERNEL - the kernel uevent

2. Ahora, conecte o retire el dispositivo USB para activar un evento UDEV.

3. A continuación se muestra el ejemplo de salida, la información con líneas "<---" es información importante a considerar para establecer las reglas.

# udevadm monitor --kernel --property --subsystem-match=usb
monitor will print the received events for:
KERNEL - the kernel uevent
KERNEL[6147.486744] add /devices/pci0000:00/0000:00:0c.0/usb1/1-2 (usb)
ACTION=add             <--------------------------------------------------------- ACTION of the device
BUSNUM=001
DEVNAME=/dev/bus/usb/001/010
DEVNUM=010
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2
DEVTYPE=usb_device      
MAJOR=189
MINOR=9
PRODUCT=90c/1000/1100  <--------------------------------------------------------- ENV{PRODUCT}
SEQNUM=2192
SUBSYSTEM=usb          <--------------------------------------------------------- " SUBSYSTEM=="type_of_device"
TYPE=0/0/0

KERNEL[6147.489141] add /devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0
DEVTYPE=usb_interface
INTERFACE=8/6/80
MODALIAS=usb:v090Cp1000d1100dc00dsc00dp00ic08isc06ip50in00
PRODUCT=90c/1000/1100
SEQNUM=2193
SUBSYSTEM=usb
TYPE=0/0/0

KERNEL[6206.530205] remove /devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0 (usb)
ACTION=remove           <--------------------------------------------------------- ACTION of the device 
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0
DEVTYPE=usb_interface
INTERFACE=8/6/80
MODALIAS=usb:v090Cp1000d1100dc00dsc00dp00ic08isc06ip50in00
PRODUCT=90c/1000/1100   <--------------------------------------------------------- ENV{PRODUCT}
SEQNUM=2216
SUBSYSTEM=usb           <--------------------------------------------------------- " SUBSYSTEM=="type_of_device"
TYPE=0/0/0
KERNEL[6206.530551] remove /devices/pci0000:00/0000:00:0c.0/usb1/1-2 (usb)
ACTION=remove
BUSNUM=001
DEVNAME=/dev/bus/usb/001/010
DEVNUM=010
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2
DEVTYPE=usb_device
MAJOR=189
MINOR=9
PRODUCT=90c/1000/1100
SEQNUM=2217
SUBSYSTEM=usb
TYPE=0/0/0

4. Utilizando el ejemplo anterior, puede crear las reglas para ejecutar scripts en /etc/udev/rules.d/ . Por ejemplo, puede crear un nuevo archivo "5-usbstick-font.rules ", con una sintaxis similar a :

# cat /etc/udev/rules.d/5-usbstick-font.rules
ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="90c/1000/1100", RUN=="/bin/su godiego --command='/home/godiego/run-start.sh'"
ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="90c/1000/1100", RUN+="/bin/su godiego --command='/home/godiego/run-stop.sh'"

5. Vuelva a cargar la regla UDEV ejecutando el siguiente comando.

# udevadm control --reload

Ahora, si vuelve a conectar o quitar el dispositivo USB, se ejecutará el script personalizado (como run-start.sh o run-stop.sh).


Cent OS
  1. ¿Cómo ejecutar secuencias de comandos personalizadas en el complemento del dispositivo USB?

  2. ¿Cómo activar un evento en el script de Shell cuando se quita un dispositivo USB?

  3. ¿Cómo ejecutar un script?

  4. Uso de reglas udev para ejecutar un script en la inserción USB

  5. Cómo determinar la versión USB 1.1 o 2.0

Cómo ejecutar un script Bash {7 métodos}

Cómo configurar interfaces de red usando NMCLI en Centos 7.6

Cómo crear y ejecutar un script de Shell en CentOS 8

Cómo ejecutar un script de Python en PHP

Cómo ejecutar un script Bash

¿Cómo mostrar una notificación cuando se inserta un dispositivo USB?