Bash脚本用于检测USB插入的时间,然后将其与目录同步

时间:2010-11-15 22:15:29

标签: linux bash usb udev

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

3 个答案:

答案 0 :(得分:20)

以供参考,以下是检测到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 control --reload-rules

这是在Fedora 14上测试的。

答案 1 :(得分: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或类似的地方,当然可以依赖您的操作系统。

答案 2 :(得分:2)

这是你可以用于监听部分的an example python守护进程,然后将文件复制到你的目录应该不是问题。