有没有一种简便的方法可以从控制台检查Internet连接?我正在尝试在shell脚本中玩耍。我似乎想到的一种方法是检查HTTP响应代码以解释Internet连接是否工作正常。但我认为,必须有一种简便的方法,而无需检查从未崩溃的网站;)wget --spider http://www.google.co.in/
编辑:似乎有很多因素可以单独检查,这是一件好事。目前,我的目的是检查我的博客是否关闭。我已设置cron来每分钟检查一次。为此,我正在检查wget --spider的HTTP响应代码到我的博客。如果不是200,它会通知我(我相信这比仅ping它要好,因为该站点可能承受沉重的负担,并且可能超时或响应很晚)。今天昨天,我的互联网出现了问题。局域网连接正常,但是我无法访问任何站点。所以我继续收到通知,因为脚本在wget响应中找不到200。现在,我要确保当我具有互联网连接时它会向我显示通知。
因此,检查DNS和LAN连接对我来说有点过头了,因为我没有太多特别的需要来弄清楚它是什么问题。那么您如何建议我呢?
这是我的脚本,用于继续检查博客的停机时间:
#!/bin/bash
# Sending the output of the wget in a variable and not what wget fetches
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Traverse the string considering it as an array of words
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means all good
fi
done
if [ $FLAG -eq '0' ]; then
# A good point is to check if the internet is working or not
# Check if we have internet connectivity by some other site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means we do have internet connectivity and the blog is actually down
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Downtime Alert!" "http://blog.ashfame.com/ is down."
fi
fi
exit
这样,仅在博客响应代码存在问题的情况下,我才需要检查Internet连接。它有点沉重(因为我没有使用ping),但不应给出任何误报。对?另外,我如何每次都可以随机将ping到另一个站点,例如facebook,google,yahoo等。另外(我试图避免任何I / O)我可以写入日志文件,通过该文件可以检查停机检查的次数以及然后跳过进一步检查,直到站点关闭或进行更长的检查(10分钟而不是每分钟)。你怎么看?