有没有可以编写的Bash脚本和/或守护程序,可以检测特定的USB驱动器,并将该驱动器与目录进行同步?
为了以后的参考,这里是如何在检测到 USB 设备时运行 bash 脚本。
连接您的设备并运行 lsusb
以检索设备的信息。您应该会看到类似于以下内容:
在这种情况下,设备的供应商ID是0bc2,产品ID是2100。$ lsusb Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC
现在,您可以使用您选择的文本编辑器创建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上测试。
虽然我自己没有做过,但你可以尝试像这样使用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
或类似位置,具体取决于您的操作系统。
这里已经有很好的答案了,但根据您的用例,它可能只是简单的
[ -d /run/media/$USER/USB_STICK ] && do_stuff
这里的USB_STICK
是USB闪存的标签。