一 功能
定时自动检测网站是否能访问,如不能访问,发邮件(邮箱正好有短信功能,现在第三方飞信有接口可以直接发手机)
二 平台
fedora 6
三 实现过程
1 ckurls.sh(shell)内容如下(别忘了加执行权限):
#!/bin/bash
urls='http://1.com http://2.com'
msg=''
for url in $urls
do
curl -sf $url
state=$?
if [ $state != 0 ]; then
msg=$msg$url/($state/)
fi
done
if [ $msg != '' ]; then
echo 'wrong'|mail -s $msg mymail@mail.com
echo "`date +/"+%F %T/"` $msg ">> /ew/sh/ckurls.log
fi
补充:
$? 指访问状态,具体数字含义可以用查帮助
# man curl|grep 52
0 正常
6 不能解析
7 web服务挂掉了
52 服务器有问题或者是TCP窗口缩放问题
2 邮件服务是否打开,如果没打开,一定要打开,不然不能发邮件
# /etc/init.d/sendmail status
sendmail (pid 23502 23494) is running...
3 定时,每天从7-22点每隔20分钟检测一次
# crontab -e
*/20 7-22 * * * /ew/sh/ckurls.sh