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

[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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值