我正在检查网站是在线还是离线。如果离线,这个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任务(或者进行"休息")直到网站再次上线为止?
有什么想法吗?
答案 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