我需要开发一个功能,像磁盘热插拔。我编写了一些udev
规则来监视磁盘,以便在udev触发时执行一个python
脚本
问题:
当我第一次拉磁盘时,lsblk, lsscsi, udev, megacli
都可以监视,/dev/sda
变为/dev/sdg
,udev
也可以触发,py脚本执行成功,第一次磁盘插也正常
但是第二次还是更多的时候,我拉前面的/dev/sdg
,lsblk, lsscsi, udev
都感觉不到,std输出列表中也包含dev/sdg
,而且udev
没有找到remove event
,脚本也没有执行,megacli
可以找到磁盘的不足
现在我需要udev
实时监控磁盘插件来执行脚本,是否有人在这个问题上有经验
我的udev
规则:
KERNEL=="sd[a-z]", ACTION=="add", SUBSYSTEM=="block", RUN+="/usr/bin/python /root/disk_plug.py %k add"
KERNEL=="sd[a-z]", ACTION=="remove", SUBSYSTEM=="block", RUN+="/usr/bin/python /root/disk_plug.py %k remove"
这是我的测试脚本:/root/disk_plug.py
import sys
import time
disk = sys.argv[1]
event = sys.argv[2]
with open('/root/disk.txt', 'a') as f:
msg = event + '-' + disk + '-' + str(time.time())
f.write(msg + "\n")
在拔出之前试着装好
相关问题 更多 >
编程相关推荐