Linux插拔磁盘只有第一次会被感应到

发布于 2022-09-05 15:47:42 字数 1105 浏览 50 评论 0

问题:目前我在做一个类似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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文