您的位置:首页 > 其它

生产环境批量检查web服务是否正常并且发送相关邮件或手机报警

2015-07-27 18:48 489 查看
[root@jason ~]# cat check_url.sh

#!/bin/bash

. /etc/init.d/functions #加载系统函数库

RETVAL=0 #定义初始变量为0,后边做返回值用

script_path=/root #定义脚本路径

mail_group="280834114@qq.com" #群组邮箱,可写多个地址

phone_group="18220858831" #群组手机号码

log=/tmp/check_url.log #日志路径

failcount=0 #定义初始失败次数为0

function GetUrlStatus(){ #函数

for ((i=1;i<=3;i++))

do

wget -T 2 -q --spider http://${1} >&/dev/null #检查网站是否正常 ${1}为参数

[ $? -ne 0 ]&& let failcount+=1 #如果检查一次不正常 failcount变量自增1

done

if [ $failcount -gt 1 ];then #如果failcount大于1,即检查失败2次,则报警 接下来是报警内容

RETVAL=1

nowtime=`date +"%m-%d %H:%M:%S` #时间

content="$HOSTNAME service is error,${nowtime}." #报警内容
echo "send to :$mail_group ,title:$content" > $log #写入日志的内容

for mail_user in $mail_group #从邮箱组中循环取邮箱地址

do

mail -s "$content" $mail_user < $log #发送邮件 并导入并发送$log日志中的内容

done

else

RETVAL=0 #如果检查正常 则返回值变量仍为0

fi

return $RETVAL

}

#check_list: #定义一个所检查网站的文件,所检测网站均在这个文件中

cat >$script_path/ip_domain.list<<EOF

192.168.1.220

www.baidu.com

EOF

#service check

for url in `cat $script_path/ip_domain.list` #url变量从文件选取要检查的网站

do

echo -n "checking $url: " #显示检查的哪个网站

GetUrlStatus $url && action "successful" /bin/true ||\ #调用函数 $url 即为函数中的${1}

action "failure" /bin/false

done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: