是否有我可以编写的 Bash 脚本和/或守护进程来检测特定的 USB 驱动器,然后将该驱动器与目录同步?
3 回答
为了将来参考,这里介绍了如何在检测到 USB 驱动器时运行 bash 脚本。
连接您的设备并运行lsusb
以检索设备的信息。您应该会看到与此类似的内容:
$ lsusb Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC
在这种情况下,设备的供应商 ID 为 0bc2,产品 ID 为 2100。
现在您可以使用您选择的文本编辑器创建您的 UDEV 规则。
$sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules
并添加:
ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0bc2", SYSFS{idProduct}=="2100", RUN+="/home/myhome/my_script"
/home/myhome/my_script
是你的脚本的路径,它会做你想做的任何事情。
为确保检测脚本将立即执行,请运行以下命令以重新加载 UDEV 规则:
$sudo udevadm 控制 --reload-rules
这是在 Fedora 14 上测试的。
我自己没有这样做,但你可以尝试udev
这样的规则:
# Hitachi SimpleDrive mini, model HTS545050B9A300 (500 GB USB HDD)
SUBSYSTEM=="block", ATTR{size}=="976768002", ATTRS{product}=="SimpleDrive mini", ATTRS{serial}=="2512009121920487", ACTION=="add", RUN+="/lib/udev/local.usb.hdd.sh add $devpath"
将它放在/etc/udev/rules.d/90-local.rules
或类似的地方,当然取决于您的操作系统。
这是一个示例python 守护程序,您可以将其用于侦听部分,然后将文件复制到您的目录应该不成问题。