监控网站可用性超实用脚本分享

本脚本出自 老男孩linux运维实战培训中心 shell编程课程脚本案例!
脚本功能:实现对公司网站的url地址检查,把故障通过邮件或者短信的形式报告给管理员,可以同时加入多个监控点,URL地址可以是实际网站地址,也可以是专门的地址,当然,我们也可以结合nagios等软件来实现。
1)脚本内容

 
 [root@nosql01 scripts]# cat check_url_by_oldboy.sh    
 #!/bin/bash   
 # this script  
 is 
  created  
 by 
  oldboy.   
 # e_mail:31333741@qq.com   
 # qqinfo:49000448   
 #  
 function 
 : oldboy trainning stripts,check_service.   
 # version:1.1    
 ################################################   
 # oldboy trainning info.         
 # QQ 1986787350 70271111   
 # site:http://www.etiantian.org   
 # blog:http://oldboy.blog.51cto.com   
 # oldboy trainning QQ  
 group 
 : 208160987 226199307   
 ################################################   
 # 
 set 
  -x   
 RETVAL=0   
 SCRIPTS_PATH= 
 "/server/scripts" 
   
 MAIL_GROUP= 
 "31333741@qq-.com 49000448@qq-.com" 
   
 #MAIL_GROUP= 
 "18600338340 18911718229" 
   
 ## web detection  
 function 
   
 LOG_FILE= 
 "/tmp/web_check.log" 
   
 function 
  Get_Url_Status(){   
 FAILCOUNT=0   
 for 
  (( i=1 ; $i <= 3 ; i++ ))    
  do    
     wget -T 15  
 --tries=1 --spider http://${1} >/dev/null 2>&1  
   
     if [ $? -ne 0 ]   
          
 then 
   
          let FAILCOUNT+=1;   
     fi   
 done   
   
 #if 3 times  
 then 
  send mail.   
 if [ $FAILCOUNT -gt 1 ]   
       
 then 
     
        RETVAL=1   
        NOW_TIME=` 
 date 
  + 
 "%m-%d %H:%M:%S" 
 `   
        SUBJECT_CONTENT= 
 "http://${HOST_NAME} service is error,${NOW_TIME}." 
   
        echo  
 "send to :$MAIL_USER ,Title:$SUBJECT_CONTENT" 
  >$LOG_FILE   
         
 for 
  MAIL_USER   
 in 
  `$MAIL_GROUP`   
        do   
           mail -s  
 "$SUBJECT_CONTENT " 
  $MAIL_USER <$LOG_FILE   
           #sh $SCRIPTS_PATH/sms_send $SUBJECT_CONTENT $MAIL_USER    
        done   
 else 
   
       RETVAL=0   
 fi   
 return 
  $RETVAL   
 }   
 #func  
 end 
 .   
 [ ! -d  
 "$SCRIPTS_PATH" 
  ] && {   
   mkdir -p $SCRIPTS_PATH   
 }   
   
 [ ! -f  
 "$SCRIPTS_PATH/domain.list" 
  ] && {   
 cat >$SCRIPTS_PATH/domain.list<<EOF   
 oldboy.blog.51cto.com   
 bbs.etiantian.org   
 EOF   
 }   
 #service  
 check 
     
 for 
   HOST_NAME  
 in 
  `cat $SCRIPTS_PATH/domain.list`   
    do   
        echo -n  
 "checking $HOST_NAME: " 
   
        Get_Url_Status $HOST_NAME && echo ok||echo  
 no 
   
        #Get_Url_Status $HOST_NAME   
 done  
 

2)演示结果
[root@nosql01 scripts]# sh check_url_by_oldboy.sh
checking oldboy.blog.51cto.com: ok
checking bbs.etiantian.org: no
提示:上面我们看到的仅仅是为了调试而加的,后台已经对故障站进行了邮件及短信报警。

3)生产用法
实际工作中,我们可以结合定时任务调用脚本检查,甚至可以稍加改进,在服务的重启过程中进行检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值