17

是否有我可以编写的 Bash 脚本和/或守护进程来检测特定的 USB 驱动器,然后将该驱动器与目录同步?

4

3 回答 3

22

为了将来参考,这里介绍了如何在检测到 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 上测试的。

于 2011-11-16T00:53:02.153 回答
6

我自己没有这样做,但你可以尝试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或类似的地方,当然取决于您的操作系统。

于 2010-11-15T22:23:12.367 回答
3

这是一个示例python 守护程序,您可以将其用于侦听部分,然后将文件复制到您的目录应该不成问题。

于 2010-11-15T22:32:21.860 回答