自动启动脚本来通知我连接问题

自动启动脚本来通知我连接问题

我的网络连接有时不太稳定,时不时会丢包或完全中断,这需要我重新启动网络连接或有时暂时拔掉一些设备。

这很可能不是 Ubuntu 的问题,而与硬件和环境的影响和干扰有关。

我希望我的连接开始中断时能立即收到通知(弹出窗口或指示小程序)。通过检查ping本地路由器的响应来检测这一点,如果我能访问它,则一切正常。

您能否提供一个脚本,在连接处于活动状态时每秒 ping 一次我的路由器?它应该检查丢失的包裹,如果没有回来,它会提醒我。

答案1

怎么样 :

#!/bin/bash
dev='eth0'

if { nmcli dev status | grep "^"$dev".* connected" ;} &>/dev/null; then
  while :; do
    if ping -c 4 -i 0.5 gmail.com &>/dev/null; then
        sleep 5
    else
        sleep 30
        until ping -c 4 -i 0.5 gmail.com &>/dev/null; do
          notify-send --urgency=critical "Network issue"
          sleep 30
        done
        notify-send --urgency=critical "There was a Network issue, Its Ok now"
    fi
  done
fi

将您想要监控的接口保存为变量dev

此脚本将首先检查连接是否已启动,如果已启动,则它将以 0.5 秒的间隔向 192.168.1.1(假设这是您的路由器 IP 地址)发送 4 个 ICMP 回应请求数据包。如果任何数据包都有来自路由器的回应响应,则它将等待 5 秒钟,然后ping再开始检查。

现在,如果所有 4 个数据包都无法从路由器获得响应,那么它将休眠 30 秒,这样我们就不会因突然的网络故障而不知所措。30 秒后,它将再次开始检查,如果这次成功,将显示ping消息。There was a Network issue, Its Ok now

如果仍然不行,那么Network issue就会显示消息,然后等待 30 秒并再次开始循环,直到收到任何成功的响应。

相关内容