实验室的网络经常瘫痪,这点让人非常纠结。
为了检查网络是否正常,需要经常敲 ping
命令,久而久之就感觉很 stupid 。
终于我忍不住了,写了一个工具定期帮我测试网络,一旦网络状态发生改变,就弹窗提醒。
截图:
1 网络连接失败时的提醒
2 网络恢复正常时的提醒:
主要的思想是发送四次 ping
命令到 Google 的 DNS 服务器 8.8.8.8
,然后检测是否有返回带 ttl
字段的消息,如果有,则可以判定网络连接正常;如果经过四次 ping 操作都无法接收到带 ttl
字段的消息,则可以判定网络连接失败。为了让网络状态反馈的更及时,我设定每五秒钟就执行一次 ping 操作。
弹窗的命令用的是 notify-send
,依赖 libnotify 。
图标用的是 KDE 自带的 Oxygen 图标,也可以根据你的喜好进行更换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #!/bin/bash
net_stat=1
while true do PINGRET=$( ping 8.8.8.8 -c 4 | grep "ttl=" ) [ -z "$PINGRET" ] && { if [ $net_stat -eq 1 ]; then notify-send -i /usr/share/icons/oxygen/48x48/actions/dialog-cancel.png "Warning" "Bad connection" net_stat=0 fi echo Bad connection }|| { if [ $net_stat -eq 0 ]; then notify-send -i /usr/share/icons/oxygen/48x48/actions/dialog-ok-apply.png "Congrats" "Network connected" net_stat=1 fi echo Network connected } sleep 5 done
|
下载该脚本