Ubuntu系统检测wlan0断开就执行命令脚本,每5秒执行一次
时间: 2024-10-18 18:15:57 浏览: 31
Ubuntu系统下用Crontab命令定时执行PHP文件详解
在Ubuntu系统中,你可以通过监控网络连接并利用`inotifywait`工具以及shell脚本来实现这样的功能。`inotifywait`是一个用于监视文件系统的工具,当文件或目录有变化时(如wlan0接口状态变化),它会触发相应的操作。
首先,你需要创建一个shell脚本(例如`check_network.sh`),内容如下:
```bash
#!/bin/bash
# 检查wlan0是否已断开
if [[ $(nmcli device status wlan0 | grep -q "disconnected" ]]; then
# 如果断开,执行你的命令
your_command_here
fi
# 等待5秒钟后再次检查
sleep 5s && ./check_network.sh
```
将`your_command_here`替换为你想要执行的具体命令,比如重启无线网卡、发送邮件通知等。
然后,你需要设置这个脚本每隔5秒自动运行。为此,在终端中使用`nohup`命令加上`inotifywait`来启动脚本,并让它后台运行,像这样:
```sh
nohup inotifywait -r -m /sys/class/net -e close_wake ./check_network.sh &
```
这将持续监听`/sys/class/net`目录下wlan0接口的变化,并在检测到wlan0断开时执行脚本。`-r`表示递归监测,`-m`指定监视目录,`-e close_wake`则监视接口关闭事件。
阅读全文