我写了一个简单的 bash 脚本来监控我的网站。
#!/bin/bash
# script to check website status (online/offline)
while read site
do
if ping -w 60 -c1 -q "$site" &>/dev/null; then
echo "$site is up"
else
echo "[$(date +%d-%m-%Y:%H:%M:%S)] $site is not reachable." | slackpost.sh
fi
done < /home/pi/scripts/www-status/sites.txt # list of sites to check
但有时我会遇到 else block ...$site is not reachable。 ...
即使网站在线。
任何可能导致不良 ping 的想法?
最佳答案
你只发送一个数据包,所以你冒着很多误报的风险。
当链路饱和时,在正常、健康的网络运行期间,数据包通常会被丢弃。如果您的单个数据包丢失,您会认为主机已关闭。
考虑改用 wget
。它有诸如 --tries=10
和 --waitretry=6
之类的选项,这将给主机一分钟的时间来响应几次连接尝试,并且每次尝试发送几个数据包。
这还会让您知道主机是否正确响应或是否响应错误。
关于linux - 即使网站在线,Ping 也返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44078457/