linux shell 监控web服务

   在启动监控前,先安装sendmail通过发送邮件来实现告警通知。为了能达到及时提醒的作用,我们采用移动139邮箱,接到邮件手机短信实时提醒。

一、安装sendmail

1.安装sendmail来发邮件
# yum -y install sendmail
# /etc/init.d/sendmail start
# chkconfig sendmail on

需要安装sendmail并开启防火墙的25端口,如果你需要收邮件110端口也要开

2.安装mutt邮件客户端,并设置相关信息
# yum -y install mutt
# cp /etc/Muttrc /root/.muttrc 重命名,并修改配置

vi /root/.muttrc
  set charset="utf-8"           #设置发邮件编码
  set use_envelope_from=yes
  set rfc2047_parameters=yes    #解决附件乱码问题
  set realname="报警"           #发件人别名
  set use_from=yes              #指定是否显示别名
  set from=root@localhost       #发送人地址,当前主机名称,若配置其他邮箱,需配置协议主机名和密码

二、检查脚本

vi check_web.sh

#!/bin/bash
#====================================================
#监控web服务是否可用
#====================================================
while true
do
    Mail="158****3564@139.com" 
    FailCount=0
    Retval=0
    GetUrlStatus() {
                for ((i=1;i<=3;i++))     #使用i++判断访问次数,如果wget两次超时则判断网站异常
                do
                        wget -T 3 --tries=1 --spider http://${1} >/dev/null 2>&1
                        #-T超时时间,--tries尝试1次,--spider蜘蛛
                        [ $? -ne 0 ] && let FailCount+=1;    #访问超时时,$?不等于0,则FailCount加1
                done
                Date=`date +%F" "%H:%M`
                if [ $FailCount -gt 1 ];then
                        Retval=1
                        echo "check fail!!!,sendmail....."
                        echo -e "Date : $Date\nProblem : $url is not running." | mutt -s "web server Monitor" $Mail
                else
                        Retval=0
                        echo "Date : $Date  $url is running."
                fi
                return $Retval        #如果返回值为0,就正常退出循环,不为0则继续循环
     }
     for url in `cat url | sed '/^#/d'`
     do
        #GetUrlStatus $url && echo yes || echo no
        GetUrlStatus $url
    done
    sleep 3           #死循环,设置每3s运行一次
done
脚本读取url文件中域名来检查,我们需要创建一个url文件,并添加访问域名:

echo "www.baidu.com" >url

echo "test.abc.com" >>url

好了,运行脚本,看一下。

./check_web.sh  #发送邮件比较慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值