如何在n次后中止wget

时间:2016-02-24 08:06:57

标签: php linux unix cron wget

我正在检查网站是在线还是离线。如果离线,这个cron任务会调用一个url给我发消息。

这是我的cron工作:

* * * * * /usr/bin/wget "www.mydomain.fr" --timeout 30 -O - 2>/dev/null | grep "a_string_in_the_site" || echo "The site is offline" | wget "urltotextmeamessage.com"

此任务每30秒检查一次站点状态,并在站点离线时发送消息:OKAY

问题是,当网站离线时,我不会每30秒钟收到数百封邮件。

是否可以在n次之后停止cron任务(或者进行"休息")直到网站再次上线为止?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不会停止cron工作,因为你仍然需要检查 如果服务器再次在线。您可以将msgs限制为 使用此脚本的OK / DOWN消息:

#!/bin/bash
#   /usr/local/sbin/check_webserver

wget -O - -q "checkurl" | if grep -q "checkword"; then
    echo "Server OK" > /var/run/check_webserver
else
    echo "Server DOWN" > /var/run/check_webserver
fi

diff -q /var/run/check_webserver /var/run/check_webserver.old >/dev/null  2>&1 || 
cat /var/run/check_webserver
# or put some other msg service than cron mail here

cp /var/run/check_webserver /var/run/check_webserver.old

并将其添加到cron:

* * * * * /usr/local/sbin/check_webserver