![通过shell监控网络连接](https://linux22.com/image/979532/%E9%80%9A%E8%BF%87shell%E7%9B%91%E6%8E%A7%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5.png)
我只需要在有网络连接时运行 shell 脚本。是否可以通过 shell 脚本查看网络连接的可用性?
ping google.com
是让它工作的简单命令。但我该如何观看它呢?
答案1
我想你可能只是在寻找
ping -c1 -W1 google.com >/dev/null && command
command
仅当 ping 成功时才会执行。
答案2
如果观看意味着查看传输速度,我有两个解决方案。
接口速度(wifi、以太网)
ifstat -S
个人转接/连接的速度
sudo iftop
答案3
你可以做这样的事情
#!/bin/bash
while [ 1 ]; do
TEST=$(nmcli -f STATE dev status | awk '/connected/ {print 1}')
if [ $TEST ]; then
# place whatever you wanna do here if connection is available
fi
sleep 0.25
done
nmcli
有dev status
显示网络接口状态的命令。因此,我们仅使用-f STATUS
格式标志检查输出的状态列。如果我们有连接,无论是以太网还是 wifi,我们都将 TEST 变量设置为 1 ,表示 true。接下来是if . . then . . .fi
语句,它实际上执行了该任务。