gpt4 book ai didi

linux - 如何在 Raspberry Pi 上有效监控以太网何时插入/拔出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:24 25 4
gpt4 key购买 nike

我的最终目标是创建一个在启动时运行的脚本,该脚本在插入以太网电缆时关闭 wifi,反之亦然。这是我到目前为止创建的脚本:

#!/bin/bash
File=/sys/class/net/eth0/carrier
function toggle {
if grep -q 1 "$File"; then
echo "Yes"
else
echo "No"
fi
}

toggle # Once on startup
while inotifywait -q $File; do
toggle
done

我已经确认插入和拔出以太网电缆确实会改变 /sys/class/net/eth0/carrier,但由于某种原因,更新时绝对没有任何反应。我通过将 File 更改为我的主目录中名为“test.txt”的临时文件来测试该命令是否完全检测到更改。每当我访问该文件、更改其内容等时,脚本都会按预期继续。我尝试通过执行 echo '1' > test.txt 来覆盖文件,这很有效。删除文件导致错误和脚本终止,但至少它注册了一个响应。

我可以将脚本设置为每秒执行一次,但我想尽可能避免这种情况。

最佳答案

根据 thisthis , inotify 可能不适用于 /sys 文件。

另一种方法是使用 ip monitor 并检查 state UPstate DOWN 字符串:

ip monitor link dev eth0 | awk '/state DOWN/{print "No"} /state UP/{print "Yes"}'

关于linux - 如何在 Raspberry Pi 上有效监控以太网何时插入/拔出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com