第一次安装后的磁盘插件缓存

时间:2017-09-01 04:38:01

标签: python linux driver device ceph

我需要开发一个喜欢磁盘热插拔的功能。我写了一些udev规则来监视磁盘,以便在触发udev时执行一个python脚本。

问题:

当我第一次拉磁盘时,lsblk, lsscsi, udev, megacli所有人都可以监控,/dev/sda更改为/dev/sdgudev也可以被触发并且py脚本成功执行,第一次磁盘插头也正常。

但是第二次或更多次,我拉前一个/dev/sdglsblk, lsscsi, udev都无法察觉,标准输出列表也包含dev/sdg,而udev没有&# 39;找不到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")

1 个答案:

答案 0 :(得分:0)

在拔出之前尝试卸下