如何检测在Linux下插入闪存驱动器的时间?
问题描述:
如何检测闪存驱动器何时插入?我正在使用一个纯粹的Debian安装,没有任何GUI,并且希望在我的Python脚本中出现新的闪存驱动器时收到通知...我知道D-BUS分发这些信息,但我不想使用D-BUS。有没有更多的信息访问这些信息?不应该在/ proc或/ sys下可用吗?我如何“连接”到该源?如何检测在Linux下插入闪存驱动器的时间?
再见 福斯塔夫
答
您可以通过Netlink插座读uevents from kernel并查找事件,其中"ACTION"
是"add"
(你也可以看,如果来自设备的分区中安装或卸载,或者如果设备被移除)。这与人们可以在用户空间中获得的事件来源接近。据我所知,这是udev
如何检测插入的可移动媒体。
但可能using D-Bus/HAL API via Python bingings会更容易(没有uevents数据解析等)。不知道你为什么反对这一点。既然你使用Python,我怀疑资源并不是真正的问题。
答
的/ proc /分区显示了所有已知的内核的分区。
答
当USB设备插入系统日志时,将与此有关的消息写入/ var/log/messages。 “dmesg”命令显示此日志。您可以在日志末尾查看设备连接到哪个通道,通常是/ dev/sd(letter)(数字),具体取决于插入系统的分区和串行磁盘的数量。
答
我这样做是使用zenity在脚本和udev与规则上与RHEL6:
KERNEL == “SD [BD]”,DRIVERS == “USB”,ACTION == “添加”,RUN + = “/ path/to/script”
谢谢!我尝试了你的或者PeterMmm的方法,即时通讯还不确定是否要使用udev ...嗯,我使用python在我的机器上编写原型,它没有任何资源问题,但目标是嵌入式设备,想要安装所有的D-Bus/HAL的东西... – falstaff 2009-10-05 08:58:06