插入磁盘时运行命令 (Linux)

tyl*_*erl 6 linux autorun

我想在 Linux 下每次插入驱动器时自动运行我自己的命令(例如,包括 USB 驱动器)。显然,最简单的解决方案是定期轮询和检查 /proc/partitions 或 /dev/disk 的更改,但我希望有比这更优雅的东西。

编辑

我知道这是可能的,因为 GNOME 就是这样做的;每当插入新驱动器时,GNOME 都会运行它自己的“自动播放”机制来执行某些操作。(“您要查看此 SD 卡上的图片吗? ”)

我可以想出两个用途:第一个是在我管理的 Amazon EC2 集群中,自动检测和初始化新连接的 EBS 存储卷。

另一种用法是在基于 Linux 的家庭文件服务器设备上;当我将 SD 卡插入设备时,它应该安装卡,将卡中的图片移动到内部硬盘驱动器上,卸载卡,然后发出哔声让我知道它已完成。

All*_*len 12

Udev 规则正是您要寻找的。从手册页本身:

... 如果 udev 收到设备事件,它会将其配置的规则与 sysfs 中提供的可用设备属性进行匹配以识别设备。匹配的规则可能会提供额外的设备信息或指定一个设备节点名称和多个符号链接名称,并指示 udev 运行其他程序作为设备事件处理的一部分。...

强调我的。

规则文件在 /etc/udev/rules.d/ 中,它们的文档在 udev(7) 中。哦,它们几乎适用于所有事情。


pre*_*ion 7

我在这里找到了一个很好的链接。 http://linlog.skepticats.com/content/udevautorun/

基本上,您可以将所有块设备或特定块设备的脚本放在 /etc/udev 中。