Atr*_*opo 37
使用wget:
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
echo "Online"
else
echo "Offline"
fi
Run Code Online (Sandbox Code Playgroud)
小智 15
如果学校实际上关闭了他们的路由器,而不是将所有流量重定向到"为什么你不在床上"页面,那么就没有必要下载整个网页或发送HTTP标头.您所要做的就是建立联系并检查是否有人正在倾听.
nc -z 8.8.8.8 53
Run Code Online (Sandbox Code Playgroud)
这将输出"连接到8.8.8.8端口53 [tcp/domain]成功!" 如果有人在听,则返回值0.
如果要在shell脚本中使用它:
nc -z 8.8.8.8 53 >/dev/null 2>&1
online=$?
if [ $online -eq 0 ]; then
echo "Online"
else
echo "Offline"
fi
Run Code Online (Sandbox Code Playgroud)
小智 6
使用:
#!/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;
Run Code Online (Sandbox Code Playgroud)
输出将产生类似以下内容:
./internet_check.sh
UP 2016-05-10T23:23:06BST 4
DOWN 2016-05-10T23:23:25BST 19
UP 2016-05-10T23:23:32BST 7
Run Code Online (Sandbox Code Playgroud)
行尾的数字显示前一个状态的持续时间,即向上 19 秒,向下 7 秒。
| 归档时间: |
|
| 查看次数: |
62564 次 |
| 最近记录: |