Chinaunix首页 | 论坛 | 博客
  • 博客访问: 238171
  • 博文数量: 79
  • 博客积分: 1942
  • 博客等级: 上尉
  • 技术积分: 910
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-19 16:17
文章分类

全部博文(79)

文章存档

2011年(1)

2010年(50)

2009年(28)

分类: LINUX

2010-05-20 22:57:21

网站需要定时更新计划任务调度php去产生更新数据,如果php不能被更新调度产生数据那么报警,前提是php页面能正常被访问到,通过curl等去触发一下,类似于激活php程序。
 
shell脚本:
apache编码两种不同 一种直接curl可以获得到页面信息,另外一种需要转字符集编码。
A)
while read i
do
GET_REPORT=$(curl  $i | grep [成功])
if [ "$?" -eq "0" ]
then
    echo "OK"
else
    /wwwroot/baojing/fetion --mobile=15956xxxx --pwd=254605 --to=15956xxxx --msg-utf8="$i is DOWN!"
fi
done<0.txt
 
 
B)
while read i
do
if curl $i|grep -q "成功"
then
echo ok
else
  /wwwroot/baojing/fetion --mobile=15956xxx --pwd=254605 --to=159569xxxx --msg-utf8="$i is DOWN!"
fi
done<0.txt
 
A)和 B)两种用法匹配应该是有区别的但是我在测试的没发现区别,[成功] 这里应该grep的结果里绝对的只允许成功二字才算正确,"成功" 这里匹配的结果包含 成功 即可算正确的。
 
注释:0.txt 这个文件里是php的url 要激活这些url产生数据更新。因为我去激活php程序化那么php页面会出现成功的关键字。我根据页面的提示来匹配,匹配不到关键字就报警。
 
 
下面这种是需要转换字符集编码的:
while read i
do
if curl $i |iconv -f gb2312 -t utf-8|grep -q "OK"
then
echo ok
else
  /wwwroot/baojing/fetion --mobile=159569xxxx --pwd=254605 --to=159569xxxx --msg-utf8="$i is DOWN!"
fi
done<1day.txt
 
注释:1day.txt 这个文件里是每天需要定时激活的php url。
 
(注释:/wwwroot/baojing/fetion --mobile=159569xxxx --pwd=254605 --to=159569xxx --msg-utf8="$i is DOWN!" 这个地方是飞信的路径,通过飞信来实时报警到手机的。)
 
再把这个脚本的执行路径放到crontab里设置定时执行即可(脚本和*.txt为同一目录)。
 
 

 
 
阅读(817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~