我制定了一个小 udev 规则来启动一个脚本,该脚本可以对我的~/Documents
目录进行归档。这样就可以了,但是当我读取日志文件时,似乎在我插入密钥时存档脚本执行了 3 次。
这是我的规则:
ACTION=="add", SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1642", RUN+="/bin/sh /root/auto-archive"
Run Code Online (Sandbox Code Playgroud)
这是我的脚本:
ACTION=="add", SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1642", RUN+="/bin/sh /root/auto-archive"
Run Code Online (Sandbox Code Playgroud)
任何的想法?谢谢。
---在 Sparhawk 评论后编辑---
我udevadm
用我的钥匙运行:
udevadm info -a -p $(udevadm info -q path -n /dev/sbd)
Run Code Online (Sandbox Code Playgroud)
这给了:
looking at device '/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host4/target4:0:0/4:0:0:0/block/sdb':
KERNEL=="sdb"
SUBSYSTEM=="block"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host4/target4:0:0/4:0:0:0':
KERNELS=="4:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host4/target4:0:0':
KERNELS=="target4:0:0"
SUBSYSTEMS=="scsi"
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host4':
KERNELS=="host4"
SUBSYSTEMS=="scsi"
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0':
KERNELS=="1-1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="usb-storage"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-1':
KERNELS=="1-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idVendor}=="0951"
ATTRS{idProduct}=="1642"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0002"
looking at parent device '/devices/pci0000:00/0000:00:1d.7':
KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci-pci"
ATTRS{irq}=="23"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Run Code Online (Sandbox Code Playgroud)
我试图仅基于以下内容编写规则:
KERNELS=="1-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idVendor}=="0951"
ATTRS{idProduct}=="1642"
Run Code Online (Sandbox Code Playgroud)
和
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0002"
Run Code Online (Sandbox Code Playgroud)
结果是一样的:脚本被多次调用......
问题来自您的规则:您只尝试匹配设备的父设备,而不是设备本身……有关详细信息,请参阅http://reactivated.net/writing_udev_rules.html#sysfstree:
KERNEL=
, SUBSYSTEM=
, ATTR=
...),KERNELS=
, SUBSYSTEMS=
, ATTRS=
...) (注意字段末尾的“S”)。更正后的规则是:
ACTION=="add", KERNEL=="sdb1", SUBSYSTEM=="block", ATTRS{vendor}=="Kingston", ATTRS{model}=="DT 101 G2", RUN+="/bin/sh /root/auto-archive"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3607 次 |
最近记录: |