1,监控httpd状态码的shell脚本代码。
#!/bin/sh #site: www.jquerycn.cn # website[0]=www.jquerycn.cn/chuzu/' #网站1 mobile[0]='13141200000' #对应网站1 手机号码 website[1]=www.jquerycn.cn/chushou/' #同上2 mobile[1]='13141200000' #同上2 #当网站较多时,可以考虑以文件来存储,或从数据库中读取 length=${#website[@]} #获取网站总数量 for ((i=0; i<$length; i++)) #循环执行 do status=$(curl -I -m 10 -o /dev/null -s -w %{http_code} ${website[$i]}) #CURL 获取http状态码 if [ "$status"x != "200"x ]; then #检测是否为 200(正常) echo ${website[$i]} '=>' $status #php /htdoc/jk/shell_monitor.php ${mobile[$i]} ${website[$i]}'=>AccessError!' #执行PHP文件(采用第三方短信类库,或发送报警邮件) fi #结束if done #结束 do
执行:crontab -e
写入内容:5 * * * * /shell path
(上5分钟执行一次)
2,监控网站状态的shell脚本
监控指定网页的状态,若返回200表示正常,否则出错:
#!/bin/bash #edit: www.jquerycn.cn #网站url地址 # URL=$1 #获取http响应代码 HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"` #服务器能正常响应,应该返回200的代码 if [ $HTTP_CODE != 200 ];then echo $HTTP_CODE ((a=$HTTP_CODE/10)) echo $a #这里可以报警处理 exit $a else exit 0 fi
调用脚本的方法:
bash ./url_monitor.sh “http://www.jquerycn.cn/”
设置crontab计划任务,每五分钟执行一次,以监控网站的健康状态。
示例:
5 * * * * ./url_monitor.sh
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/3067.html