当我将 USB 3.0 外部硬盘插入家庭服务器时,我尝试编写自定义 udev 规则来运行 backup.sh 脚本。
我在/etc/udev/rules.d
名为 的新文件中创建了一个新文件10-custom.rules
。在此文件夹中,我还有其他文件:70-persistent-cd.rules
、60-vboxdrv.rules
和70-persistent-net.rules
.
这是我在文件中写的内容(全部写在一行中):
BUS="usb", SYSFS{idVendor}="1058", SYSFS{product}="Western Digital Technologies, Inc.", NAME="gioviusb", RUN+="/home/scripts/usbplug.sh"
这是以下的输出lsusb
:
Bus 006 Device 011: ID 1058:0748 Western Digital Technologies, Inc.
我发现的所有其他解决方案似乎都已经过时了。我正在运行 Debian 7 喘息。
答案1
问题解决了。我发出此命令将udev
日志记录到 syslog:udevadm control --log-priority=info
在深入研究 syslog 后,我注意到此错误:
Jun 10 10:33:16 GC01SRVR udevd[4707]: failed to execute '/home/scripts/usbplug.sh' '/home/scripts/usbplug.sh': Exec format error
我通过在脚本的第一行添加/home/scripts/usbplug.sh
以下文本来解决这个问题:
#!/bin/sh