GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come eseguire uno script quando i dispositivi USB vengono collegati o rimossi utilizzando UDEV

Il post delinea i passaggi per creare regole UDEV che eseguono uno script specifico quando un dispositivo USB viene collegato o rimosso. Possiamo usare lo strumento udevadm per vedere le informazioni e le proprietà quando un dispositivo viene collegato o rimosso. Utilizzando "subsystem-match=SUBSYSTEM ” Possiamo determinare il tipo di dispositivo che è collegato/rimosso.

1. Ad esempio, in questo caso con un SUBSYSTEM USB, puoi eseguire il comando seguente:

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

2. Ora collega o rimuovi il dispositivo USB per attivare un evento UDEV.

3. Di seguito è riportato l'esempio di output, le informazioni con le righe "<---" sono informazioni importanti da considerare per impostare le regole.

# 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. Utilizzando l'esempio sopra, puoi creare le regole per eseguire gli script in /etc/udev/rules.d/ . Ad esempio, puoi creare un nuovo file "5-usbstick-font.rules ", con una sintassi simile 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. Ricarica la regola UDEV eseguendo il comando seguente.

# udevadm control --reload

Ora, se colleghi o rimuovi nuovamente il dispositivo USB, verrà eseguito lo script personalizzato (come run-start.sh o run-stop.sh).


Cent OS
  1. Come attivare un evento nello script della shell quando viene rimosso un dispositivo USB?

  2. Come eseguire uno script di shell quando un file o una directory cambia?

  3. Come posso eseguire automaticamente il mio script node js utilizzando lo scheduler sul server

  4. Utilizzo delle regole udev per eseguire uno script all'inserimento USB

  5. Come eseguire uno script quando arriva una posta nel server di posta? (Debian)

Come eseguire uno script Bash {7 metodi}

Come configurare le interfacce di rete utilizzando NMCLI su Centos 7.6

Come creare ed eseguire uno script di shell in CentOS 8

Come eseguire uno script Python in PHP

Come eseguire uno script Bash

Come mostrare la notifica quando viene inserito un dispositivo USB?