Problemas con las reglas de udev para iniciar el script bash cuando el disco duro está desconectado

Problemas con las reglas de udev para iniciar el script bash cuando el disco duro está desconectado

Estoy tratando de permitir que mi Raspberry Pi (que ejecuta Debian Jessie) envíe una notificación a Pushbullet cuando por alguna razón mi disco duro está desconectado, usando reglas de udev. Ahora he conseguido que esto funcione. Sin embargo, el problema es que el script se ejecuta 14 veces en lugar de solo una vez y se ejecuta en acciones de desconexión y conexión, lo cual no es mi intención.

Probé muchas configuraciones diferentes del archivo de reglas, como por ejemplo:

ACTION==”remove”,
KERNEL==”sda1”,
SUBSYSTEM==”block”,
KERNELS==”1-1.2”,
SUBSYSTEMS==”usb”,
ATTRS{idProduct}==”10a2”,
ATTRS{idVendor}==”1058”,
ATTRS{manufacturer}=="Western Digital",
RUN+="/home/pi/HDD_removed.sh"

y

ACTION=="remove",
ENV{ID_MODEL}=="Elements_10A2",
RUN+="/home/pi/HDD_removed.sh"

y otros, pero nada funciona correctamente..

Como ayuda, imprimí las salidas de udevadm info y udevadm monitor a continuación (perdón por los tamaños grandes...):

$ udevadm info -a -p $(udevadm info -q ruta -n /dev/sda1)

looking at device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1':
KERNEL=="sda1"
SUBSYSTEM=="block"
DRIVER==""
ATTR{start}=="2048"
ATTR{inflight}=="       0        0"
ATTR{ro}=="0"
ATTR{partition}=="1"
ATTR{stat}=="     545        0    61544     4110        0        0        0        0        0     1320     4110"
ATTR{size}=="1953456128"
ATTR{alignment_offset}=="0"
ATTR{discard_alignment}=="0"

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda':
KERNELS=="sda"
SUBSYSTEMS=="block"
DRIVERS==""
ATTRS{badblocks}==""
ATTRS{range}=="16"
ATTRS{capability}=="50"
ATTRS{inflight}=="       0        0"
ATTRS{ext_range}=="256"
ATTRS{ro}=="0"
ATTRS{stat}=="     590        0    62336     4140        0        0        0        0        0     1350     4140"
ATTRS{events_poll_msecs}=="-1"
ATTRS{events_async}==""
ATTRS{removable}=="0"
ATTRS{size}=="1953458176"
ATTRS{events}==""
ATTRS{alignment_offset}=="0"
ATTRS{discard_alignment}=="0"

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0':
KERNELS=="0:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{evt_soft_threshold_reached}=="0"
ATTRS{evt_mode_parameter_change_reported}=="0"
ATTRS{inquiry}==""
ATTRS{evt_capacity_change_reported}=="0"
ATTRS{vendor}=="WD      "
ATTRS{timeout}=="30"
ATTRS{evt_lun_change_reported}=="0"
ATTRS{evt_media_change}=="0"
ATTRS{queue_type}=="none"
ATTRS{device_busy}=="0"
ATTRS{eh_timeout}=="10"
ATTRS{model}=="Elements 10A2   "
ATTRS{iocounterbits}=="32"
ATTRS{queue_depth}=="1"
ATTRS{type}=="0"
ATTRS{evt_inquiry_change_reported}=="0"
ATTRS{max_sectors}=="240"
ATTRS{iodone_cnt}=="0x27d"
ATTRS{state}=="running"
ATTRS{iorequest_cnt}=="0x27d"
ATTRS{rev}=="1033"
ATTRS{ioerr_cnt}=="0x3"
ATTRS{scsi_level}=="7"
ATTRS{device_blocked}=="0"

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0':
KERNELS=="target0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS==""

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0':
KERNELS=="host0"
SUBSYSTEMS=="scsi"
DRIVERS==""

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0':
KERNELS=="1-1.2:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="usb-storage"
ATTRS{bInterfaceProtocol}=="50"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bInterfaceSubClass}=="06"
ATTRS{bInterfaceClass}=="08"
ATTRS{bAlternateSetting}==" 0"
ATTRS{authorized}=="1"
ATTRS{bNumEndpoints}=="02"
ATTRS{supports_autosuspend}=="1"

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2':
KERNELS=="1-1.2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceClass}=="00"
ATTRS{manufacturer}=="Western Digital"
ATTRS{bmAttributes}=="80"
ATTRS{bConfigurationValue}=="1"
ATTRS{version}==" 2.10"
ATTRS{devnum}=="9"
ATTRS{bMaxPower}=="100mA"
ATTRS{idProduct}=="10a2"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{urbnum}=="7168"
ATTRS{bDeviceSubClass}=="00"
ATTRS{maxchild}=="0"
ATTRS{bcdDevice}=="1033"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idVendor}=="1058"
ATTRS{product}=="Elements 10A2"
ATTRS{speed}=="480"
ATTRS{removable}=="removable"
ATTRS{ltm_capable}=="no"
ATTRS{serial}=="575831314541323038393032"
ATTRS{bNumConfigurations}=="1"
ATTRS{busnum}=="1"
ATTRS{authorized}=="1"
ATTRS{quirks}=="0x0"
ATTRS{configuration}==""
ATTRS{devpath}=="1.2"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumInterfaces}==" 1"

looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1':
KERNELS=="1-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceClass}=="09"
ATTRS{bmAttributes}=="e0"
ATTRS{bConfigurationValue}=="1"
ATTRS{version}==" 2.00"
ATTRS{devnum}=="2"
ATTRS{bMaxPower}=="2mA"
ATTRS{idProduct}=="9514"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{urbnum}=="144"
ATTRS{bDeviceSubClass}=="00"
ATTRS{maxchild}=="5"
ATTRS{bcdDevice}=="0200"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idVendor}=="0424"
ATTRS{speed}=="480"
ATTRS{removable}=="unknown"
ATTRS{ltm_capable}=="no"
ATTRS{bNumConfigurations}=="1"
ATTRS{busnum}=="1"
ATTRS{authorized}=="1"
ATTRS{quirks}=="0x0"
ATTRS{configuration}==""
ATTRS{devpath}=="1"
ATTRS{bDeviceProtocol}=="02"
ATTRS{bNumInterfaces}==" 1"

looking at parent device '/devices/platform/soc/3f980000.usb/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceClass}=="09"
ATTRS{manufacturer}=="Linux 4.9.24-v7+ dwc_otg_hcd"
ATTRS{bmAttributes}=="e0"
ATTRS{bConfigurationValue}=="1"
ATTRS{version}==" 2.00"
ATTRS{devnum}=="1"
ATTRS{bMaxPower}=="0mA"
ATTRS{idProduct}=="0002"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{urbnum}=="25"
ATTRS{bDeviceSubClass}=="00"
ATTRS{maxchild}=="1"
ATTRS{bcdDevice}=="0409"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idVendor}=="1d6b"
ATTRS{product}=="DWC OTG Controller"
ATTRS{speed}=="480"
ATTRS{authorized_default}=="1"
ATTRS{interface_authorized_default}=="1"
ATTRS{removable}=="unknown"
ATTRS{ltm_capable}=="no"
ATTRS{serial}=="3f980000.usb"
ATTRS{bNumConfigurations}=="1"
ATTRS{busnum}=="1"
ATTRS{authorized}=="1"
ATTRS{quirks}=="0x0"
ATTRS{configuration}==""
ATTRS{devpath}=="0"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bNumInterfaces}==" 1"

looking at parent device '/devices/platform/soc/3f980000.usb':
KERNELS=="3f980000.usb"
SUBSYSTEMS=="platform"
DRIVERS=="dwc_otg"
ATTRS{wr_reg_test}=="Time to write GNPTXFSIZ reg 10000000 times: 540 msecs (54 jiffies)"
ATTRS{grxfsiz}=="GRXFSIZ = 0x00000306"
ATTRS{srpcapable}=="SRPCapable = 0x1"
ATTRS{buspower}=="Bus Power = 0x1"
ATTRS{bussuspend}=="Bus Suspend = 0x0"
ATTRS{hptxfsiz}=="HPTXFSIZ = 0x02000406"
ATTRS{hnp}=="HstNegScs = 0x0"
ATTRS{mode}=="Mode = 0x1"
ATTRS{mode_ch_tim_en}=="Mode Change Ready Timer Enable = 0x0"
ATTRS{hsic_connect}=="HSIC Connect = 0x1"
ATTRS{gsnpsid}=="GSNPSID = 0x4f54280a"
ATTRS{driver_override}=="(null)"
ATTRS{hcd_frrem}=="HCD Dump Frame Remaining"
ATTRS{gotgctl}=="GOTGCTL = 0x001c0001"
ATTRS{gpvndctl}=="GPVNDCTL = 0x00000000"
ATTRS{hnpcapable}=="HNPCapable = 0x1"
ATTRS{spramdump}=="SPRAM Dump"
ATTRS{regoffset}=="0xffffffff"
ATTRS{gnptxfsiz}=="GNPTXFSIZ = 0x01000306"
ATTRS{guid}=="GUID = 0x2708a000"
ATTRS{regdump}=="Register Dump"
ATTRS{hprt0}=="HPRT0 = 0x00001405"
ATTRS{hcddump}=="HCD Dump"
ATTRS{rem_wakeup_pwrdn}==""
ATTRS{regvalue}=="invalid offset"
ATTRS{gusbcfg}=="GUSBCFG = 0x20001700"
ATTRS{fr_interval}=="Frame Interval = 0x1d4b"
ATTRS{busconnected}=="Bus Connected = 0x1"
ATTRS{remote_wakeup}=="Remote Wakeup Sig = 0 Enabled = 0 LPM Remote Wakeup = 0"
ATTRS{devspeed}=="Device Speed = 0x0"
ATTRS{rd_reg_test}=="Time to read GNPTXFSIZ reg 10000000 times: 1500 msecs (150 jiffies)"
ATTRS{enumspeed}=="Device Enumeration Speed = 0x1"
ATTRS{inv_sel_hsic}=="Invert Select HSIC = 0x0"
ATTRS{ggpio}=="GGPIO = 0x00000000"
ATTRS{srp}=="SesReqScs = 0x1"

looking at parent device '/devices/platform/soc':
KERNELS=="soc"
SUBSYSTEMS=="platform"
DRIVERS==""
ATTRS{driver_override}=="(null)"

looking at parent device '/devices/platform':
KERNELS=="platform"
SUBSYSTEMS==""
DRIVERS==""

$ monitor udevadm --propiedad

KERNEL[50982.358011] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0 (bsg)
ACTION=remove
DEVNAME=/dev/bsg/0:0:0:0
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0
MAJOR=251
MINOR=0
SEQNUM=1095
SUBSYSTEM=bsg

KERNEL[50982.359131] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0 (scsi_generic)
ACTION=remove
DEVNAME=/dev/sg0
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0
MAJOR=21
MINOR=0
SEQNUM=1096
SUBSYSTEM=scsi_generic

KERNEL[50982.359731] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0 (scsi_device)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0
SEQNUM=1097
SUBSYSTEM=scsi_device

KERNEL[50982.361349] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0 (scsi_disk)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0
SEQNUM=1098
SUBSYSTEM=scsi_disk

KERNEL[50982.367606] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)
ACTION=remove
DEVNAME=/dev/sda1
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1
DEVTYPE=partition
MAJOR=8
MINOR=1
PARTN=1
SEQNUM=1099
SUBSYSTEM=block

KERNEL[50982.369279] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda (block)
ACTION=remove
DEVNAME=/dev/sda
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda
DEVTYPE=disk
MAJOR=8
MINOR=0
SEQNUM=1100
SUBSYSTEM=block

KERNEL[50982.370139] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0 (scsi)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0
DEVTYPE=scsi_device
MODALIAS=scsi:t-0x00
SEQNUM=1101
SUBSYSTEM=scsi

KERNEL[50982.410910] remove   /devices/virtual/bdi/8:0 (bdi)
ACTION=remove
DEVPATH=/devices/virtual/bdi/8:0
SEQNUM=1102
SUBSYSTEM=bdi

KERNEL[50982.411476] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0 (scsi)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0
DEVTYPE=scsi_target
SEQNUM=1103
SUBSYSTEM=scsi

KERNEL[50982.412387] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/scsi_host/host0 (scsi_host)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/scsi_host/host0
SEQNUM=1104
SUBSYSTEM=scsi_host

KERNEL[50982.414188] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0 (scsi)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0
DEVTYPE=scsi_host
SEQNUM=1105
SUBSYSTEM=scsi

KERNEL[50982.415487] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0 (usb)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0
DEVTYPE=usb_interface
INTERFACE=8/6/80
MODALIAS=usb:v1058p10A2d1033dc00dsc00dp00ic08isc06ip50in00
PRODUCT=1058/10a2/1033
SEQNUM=1106
SUBSYSTEM=usb
TYPE=0/0/0

KERNEL[50982.419788] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2 (usb)
ACTION=remove
BUSNUM=001
DEVNAME=/dev/bus/usb/001/007
DEVNUM=007
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2
DEVTYPE=usb_device
MAJOR=189
MINOR=6
PRODUCT=1058/10a2/1033
SEQNUM=1107
SUBSYSTEM=usb
TYPE=0/0/0

UDEV  [50982.973557] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0 (bsg)
ACTION=remove
DEVNAME=/dev/bsg/0:0:0:0
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0
MAJOR=251
MINOR=0
SEQNUM=1095
SUBSYSTEM=bsg
USEC_INITIALIZED=982359004

UDEV  [50982.999940] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0 (scsi_device)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0
SEQNUM=1097
SUBSYSTEM=scsi_device
USEC_INITIALIZED=982362751

UDEV  [50983.095057] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)
ACTION=remove
DEVLINKS=/dev/disk/by-id/usb-WD_Elements_10A2_575831314541323038393032-0:0-part1 /dev/disk/by-label/Steven /dev/disk/by-path/platform-3f980000.usb-usb-0:1.2:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/21741F4F6C4915E1
DEVNAME=/dev/sda1
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1
DEVTYPE=partition
ID_BUS=usb
ID_FS_LABEL=Steven
ID_FS_LABEL_ENC=Steven
ID_FS_TYPE=ntfs
ID_FS_USAGE=filesystem
ID_FS_UUID=21741F4F6C4915E1
ID_FS_UUID_ENC=21741F4F6C4915E1
ID_INSTANCE=0:0
ID_MODEL=Elements_10A2
ID_MODEL_ENC=Elements\x2010A2\x20\x20\x20
ID_MODEL_ID=10a2
ID_PART_ENTRY_DISK=8:0
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
ID_PART_ENTRY_SCHEME=dos
ID_PART_ENTRY_SIZE=1953456128
ID_PART_ENTRY_TYPE=0x7
ID_PART_ENTRY_UUID=00023f15-01
ID_PART_TABLE_TYPE=dos
ID_PART_TABLE_UUID=00023f15
ID_PATH=platform-3f980000.usb-usb-0:1.2:1.0-scsi-0:0:0:0
ID_PATH_TAG=platform-3f980000_usb-usb-0_1_2_1_0-scsi-0_0_0_0
ID_REVISION=1033
ID_SERIAL=WD_Elements_10A2_575831314541323038393032-0:0
ID_SERIAL_SHORT=575831314541323038393032
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
ID_USB_INTERFACES=:080650:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=WD
ID_VENDOR_ENC=WD\x20\x20\x20\x20\x20\x20
ID_VENDOR_ID=1058
MAJOR=8
MINOR=1
PARTN=1
SEQNUM=1099
SUBSYSTEM=block
TAGS=:systemd:
USEC_INITIALIZED=8036767

UDEV  [50983.126799] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0 (scsi_disk)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0
SEQNUM=1098
SUBSYSTEM=scsi_disk
USEC_INITIALIZED=982364537

UDEV  [50983.136895] remove   /devices/virtual/bdi/8:0 (bdi)
ACTION=remove
DEVPATH=/devices/virtual/bdi/8:0
SEQNUM=1102
SUBSYSTEM=bdi
USEC_INITIALIZED=982411342

UDEV  [50983.138940] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0 (scsi_generic)
ACTION=remove
DEVNAME=/dev/sg0
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0
MAJOR=21
MINOR=0
SEQNUM=1096
SUBSYSTEM=scsi_generic
USEC_INITIALIZED=982360886

KERNEL[50983.194516] remove   /devices/virtual/bdi/8:1-fuseblk (bdi)
ACTION=remove
DEVPATH=/devices/virtual/bdi/8:1-fuseblk
SEQNUM=1108
SUBSYSTEM=bdi

UDEV  [50983.204265] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/scsi_host/host0 (scsi_host)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/scsi_host/host0
SEQNUM=1104
SUBSYSTEM=scsi_host
USEC_INITIALIZED=982413320

UDEV  [50983.643690] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda (block)
ACTION=remove
DEVLINKS=/dev/disk/by-id/usb-WD_Elements_10A2_575831314541323038393032-0:0 /dev/disk/by-path/platform-3f980000.usb-usb-0:1.2:1.0-scsi-0:0:0:0
DEVNAME=/dev/sda
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0/block/sda
DEVTYPE=disk
ID_BUS=usb
ID_INSTANCE=0:0
ID_MODEL=Elements_10A2
ID_MODEL_ENC=Elements\x2010A2\x20\x20\x20
ID_MODEL_ID=10a2
ID_PART_TABLE_TYPE=dos
ID_PART_TABLE_UUID=00023f15
ID_PATH=platform-3f980000.usb-usb-0:1.2:1.0-scsi-0:0:0:0
ID_PATH_TAG=platform-3f980000_usb-usb-0_1_2_1_0-scsi-0_0_0_0
ID_REVISION=1033
ID_SERIAL=WD_Elements_10A2_575831314541323038393032-0:0
ID_SERIAL_SHORT=575831314541323038393032
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
ID_USB_INTERFACES=:080650:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=WD
ID_VENDOR_ENC=WD\x20\x20\x20\x20\x20\x20
ID_VENDOR_ID=1058
MAJOR=8
MINOR=0
SEQNUM=1100
SUBSYSTEM=block
TAGS=:systemd:
USEC_INITIALIZED=748036370

UDEV  [50983.733473] remove   /devices/virtual/bdi/8:1-fuseblk (bdi)
ACTION=remove
DEVPATH=/devices/virtual/bdi/8:1-fuseblk
SEQNUM=1108
SUBSYSTEM=bdi
USEC_INITIALIZED=3192262

UDEV  [50984.141379] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0 (scsi)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0/0:0:0:0
DEVTYPE=scsi_device
MODALIAS=scsi:t-0x00
SEQNUM=1101
SUBSYSTEM=scsi
USEC_INITIALIZED=2371212

UDEV  [50984.629455] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0 (scsi)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0/target0:0:0
DEVTYPE=scsi_target
SEQNUM=1103
SUBSYSTEM=scsi
USEC_INITIALIZED=2413053

UDEV  [50985.087418] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0 (scsi)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/host0
DEVTYPE=scsi_host
SEQNUM=1105
SUBSYSTEM=scsi
USEC_INITIALIZED=2415484

UDEV  [50985.618300] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0 (usb)
ACTION=remove
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0
DEVTYPE=usb_interface
ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBPCK)
ID_VENDOR_FROM_DATABASE=Western Digital Technologies, Inc.
INTERFACE=8/6/80
MODALIAS=usb:v1058p10A2d1033dc00dsc00dp00ic08isc06ip50in00
PRODUCT=1058/10a2/1033
SEQNUM=1106
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=5647475

UDEV  [50986.078354] remove   /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2 (usb)
ACTION=remove
BUSNUM=001
DEVNAME=/dev/bus/usb/001/007
DEVNUM=007
DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=Elements_10A2
ID_MODEL_ENC=Elements\x2010A2
ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBPCK)
ID_MODEL_ID=10a2
ID_REVISION=1033
ID_SERIAL=Western_Digital_Elements_10A2_575831314541323038393032
ID_SERIAL_SHORT=575831314541323038393032
ID_USB_INTERFACES=:080650:
ID_VENDOR=Western_Digital
ID_VENDOR_ENC=Western\x20Digital
ID_VENDOR_FROM_DATABASE=Western Digital Technologies, Inc.
ID_VENDOR_ID=1058
MAJOR=189
MINOR=6
PRODUCT=1058/10a2/1033
SEQNUM=1107
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=745644833

Respuesta1

Gracias asuciopara encontrar la solución:

De hecho, las normas deben estar en una sola línea. Esto corrige las llamadas repetidas al script (si se usa una variable única) y ahora el script solo se llama cuando el dispositivo está desconectado. Para mí, la siguiente configuración funcionó:

ACTION=="remove", ENV{ID_FS_UUID}=="21741F4F6C4915E1", RUN+="/home/pi/HDD_removed.sh"

Respuesta2

Como otros ya han identificado, cada línea en sus fragmentos es una regla separada, ya sea no hacer nada (líneas con only ==) o ejecutar un comando en cada evento de udev (líneas con only =o +=). Debes poner toda la regla en una sola línea lógica.

Puedes dividir líneas en las reglas de udev, pero debes colocar una barra invertida al final de una línea si la regla continúa en la siguiente línea. En otras palabras, una línea lógica puede contener la secuencia de dos caracteres barra invertida-nueva línea, que se ignora.

ACTION=="remove", \
ENV{ID_MODEL}=="Elements_10A2", \
RUN+="/home/pi/HDD_removed.sh"

información relacionada