在我的学校,互联网是不可用的(每天晚上23点以后,学校会切断互联网连接,让我们上床睡觉>..<),然后ping永远不会停止,尽管我使用了参数ping -w1 ...。
也就是说,当我使用:ping -q -w1 -c1 8.8.8.8检查互联网连接是否打开/关闭时,它将在那里,没有任何输出,也不退出,就像我使用单个cat一样。
我不知道为什么会这样,但我认为问题与学校的互联网服务有关。有什么建议吗?(我认为wget可能是一个很好的替代方案,但是我如何使用它呢?)
发布于 2016-05-11 05:43:05
使用:
#!/bin/bash
INTERNET_STATUS="UNKNOWN"
TIMESTAMP=`date +%s`
while [ 1 ]
do
ping -c 1 -W 0.7 8.8.4.4 > /dev/null 2>&1
if [ $? -eq 0 ] ; then
if [ "$INTERNET_STATUS" != "UP" ]; then
echo "UP `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
INTERNET_STATUS="UP"
fi
else
if [ "$INTERNET_STATUS" = "UP" ]; then
echo "DOWN `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
INTERNET_STATUS="DOWN"
fi
fi
sleep 1
done;输出将产生类似如下的结果:
./internet_check.sh
UP 2016-05-10T23:23:06BST 4
DOWN 2016-05-10T23:23:25BST 19
UP 2016-05-10T23:23:32BST 7行尾的数字表示前一状态的持续时间,即19次上升,7秒下降。
https://stackoverflow.com/questions/17291233
复制相似问题