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

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

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

编辑

我知道这是可能的,因为 GNOME 就是这样做的;每当插入新驱动器时,GNOME 就会运行其自己的“自动播放”机制来采取一些行动。(“您想查看这张 SD 卡上的图片吗?“)

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

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

答案1

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

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

强调我的。

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

答案2

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

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

答案3

自动运行(http://linux.die.net/man/1/autorun) 可以处理 CD,但我认为其他媒体不存在类似的功能。我也不认为它应该存在。

您可能能够偶尔让自动运行查看 dmesg,但很可能它只适用于您的宠物系统。

您的总体目标是什么?也许有更好的方法?

相关内容