UDEV - Run program on USB flash drive insert [closed] UDEV - Run program on USB flash drive insert [closed] linux linux

UDEV - Run program on USB flash drive insert [closed]


First you need your rule to detect usb storage devices

/etc/udev/rules.d/10-usbmount.rules:

KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/usr/bin/usbdevinserted"

This runs our custom executable shell script /usr/bin/usbdevinserted:

#!/bin/bashset 2>&1 >> /tmp/usbdevinfo

This sample script dumps the environment variables which you will need to know which device was found, eg:

DEVLINKS='/dev/disk/by-id/usb-Generic_USB_Flash_Disk-0:0 /dev/disk/by-path/pci-0000:00:13.2-usb-0:2:1.0-scsi-0:0:0:0'DEVNAME=/dev/sdkDEVPATH=/devices/pci0000:00/0000:00:13.2/usb2/2-2/2-2:1.0/host29/target29:0:0/29:0:0:0/block/sdkDEVTYPE=diskID_BUS=usbID_FS_TYPE=ID_INSTANCE=0:0ID_MODEL=USB_Flash_DiskID_MODEL_ENC='USB\x20Flash\x20Disk\x20\x20'ID_MODEL_ID=9380ID_PART_TABLE_TYPE=dosID_PART_TABLE_UUID=61d1df0bID_PATH=pci-0000:00:13.2-usb-0:2:1.0-scsi-0:0:0:0ID_PATH_TAG=pci-0000_00_13_2-usb-0_2_1_0-scsi-0_0_0_0ID_REVISION=7.76ID_SERIAL=Generic_USB_Flash_Disk-0:0ID_TYPE=diskID_USB_DRIVER=usb-storageID_USB_INTERFACES=:080650:ID_USB_INTERFACE_NUM=00ID_VENDOR=GenericID_VENDOR_ENC='Generic\x20'ID_VENDOR_ID=058fMAJOR=8MINOR=160SUBSYSTEM=block