Linux插拔磁盘只有第一次会被感应到
问题:目前我在做一个类似hotplug
的功能,也就是硬盘插入然后触发一些代码,具体的操作流程是通过udev
检测硬盘的插入,然后执行一个python
文件,但是现在测试的时候发现同一块盘,只有在拔或插第一次时才表现出正常的现象,比如拔了sda
对应的硬盘,lsblk, lsscsi, udev, megacli
都可以正常的检测少了一块盘,插得时候udev
相关脚本也可以被执行,插得时候发现新设备sdg
,这都是正常现象,但是如果重复操作第二次,lsblk. lsscsi
显示的内容不会变化,sdg
还存在,udev
不会触发,只有megacli
显示少了一块盘,由于我是通过udev
接收系统设备变化然后执行代码的,所以我必须要获取每一次的磁盘插事件,有没有老铁有相关经验的,下面我贴一些测试代码:
自己写的一个 udev rules检测磁盘插拔
KERNEL=="sd[a-z]", ACTION=="remove", SUBSYSTEM=="block", RUN+="/usr/bin/python /root/test.py %k"
KERNEL=="sd[a-z]", ACTION=="add", SUBSYSTEM=="block", RUN+="/usr/bin/python /root/test2.py %k"
test.py主要是记录每次硬盘拔出的设备名
import sys
disk = sys.argv[1]
with open('/root/remove.txt', 'a') as f:
f.write(disk + "\n")
test2.py主要是记录每次硬盘插入的设备名
import sys
disk = sys.argv[1]
with open('/root/add.txt', 'a') as f:
f.write(disk + "\n")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论