您的位置:首页 > 运维架构 > 网站架构

编写脚本:访问一网站,每5分钟访问一次,如果访问成功,将访问记录保存到日志,如果访问失败,则发送邮件至指定邮箱

2015-07-17 21:33 756 查看
今天由于业务需求,要把检查公司的网站是否能被外网访问到,就在同事的指导下做一个计划任务,首先得了解需求:

每五分钟访问公司网站一次,如果访问成功,将访问记录保存到日志,如果访问失败,就发送邮件到指定邮箱中。

需求拿到了,怎么去实现呢?

怎么去实现这个功能,在下愚钝,没有多想,肯定是crontab这个功能,于是直接就写出一个脚本(水平仅限于今天上午),脚本如下:

MAILTO=1234567@163.com

*/5 * * * * curl http://www.baidu.com
这个肯定不行,最后我询问了一些活跃在群中的大牛,他们一一给出指点,最终结合他们的给出的意见以及自己翻查资料最终解决了,脚本内容如下:

#! /bin/bash
#定义变量
L="web is Good !"
#获取网站状态特征码@1
LL=`curl -I -s http://www.baidu.com | head -1 | cut -d " " -f2`
#做判断
if [ $LL = "200" ]
then
echo "$L" >>/tmp/acc`date +%F%H%M`.log
elif [$LL="301"]
then
echo "$L" >>/tmp/acc`date +%F%H%M`.log
elif [$LL="302"]
then
echo "$L" >>/tmp/acc`date +%F%H%M`.log
else
echo "not find the page." | mail -s "not find the page" "1234567@163.com"
fi

===============================================分割线===================================================================================================

脚本重写:

#! /bin/bash
source /etc/profile
L="web is Good !"
LL=`curl -I -s http://www.baidu.com| head -1 | cut -d " " -f2`

if [ $LL = "200" ] || [$LL = "301"] ||[$LL = "302"]
then
echo "$A" >>/tmp/log/acc.`date +%F%H%M0000`.log
else
echo "not find the page" | mail -s "not find the page" "1234567@qq.com"
fi

@1:网站状态特征码:如果返回的值是200、301 、302都代表访问网站成功

脚本写完了,下面写计划任务就简单多了

crontab -e

*/5 * * * * /usr/jihuarenwu.sh

注意,jihuarenwu.sh要具有执行权限。

由于现在水平低,有发现新的方法会立即修改,如果网友有好的方法请告知。

在此感谢: 广州—greedy、深圳-sam、南京-运维、阿铭、江苏-风筝、帝都 + 豆菜、等待、Budweiser小王子等朋友的指点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: