Shell脚本监控WEB服务是否正常

简介: Shell脚本监控WEB服务是否正常

Step1.安装sendmail来发邮件

# yum -y install sendmail

# /etc/init.d/sendmail start

# chkconfig sendmail on

Step2.安装mutt邮件客户端,并设置相关信息

# yum -y install mutt

# vim /etc/Muttrc

 set charset="utf-8"           #设置发邮件编码

 set envelope_from=yes

 set rfc2047_parameters=yes    #解决附件乱码问题

 set realname="报警"           #发件人别名

 set use_from=yes              #指定是否显示别名

 set from=monitor@test.com     #发送人地址

Step3.脚本信息

1.url文件如下

# cat url      

www.baidu.com

www.sina.com

2.脚本如下

#!/bin/bash
#====================================================
# Author: lizhenliang - EMail:zhenliang369@163.com
# Last modified: 2015-2-1 
# Filename: web_mon.sh
# Description: wget monitoring web is normal 
# blog:lizhenliang.blog.51cto.com
#====================================================
while true
do
    Mail="baojingtongzhi@163.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
    if [ $FailCount -gt 1 ];then
        Retval=1
        Date=`date +%F" "%H:%M`
        echo -e "Date : $Date\nProblem : $url is not running." | mutt -s "URL Monitor" $Mail
    else
        Retval=0
    fi
        return $Retval        #如果返回值为0,就正常退出循环,不为0则继续循环
     }
for url in `cat url | sed '/^#/d'`
do
    #GetUrlStatus $url && echo yes || echo no
    GetUrlStatus $url
done
sleep 2m            #死循环,设置没2分钟运行一次
done


相关文章
|
1天前
|
JSON 数据格式 Windows
LabVIEW创建Web服务
LabVIEW创建Web服务
|
1天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
11 1
|
1天前
|
XML 存储 安全
LabVIEWCompactRIO 开发指南23 Web服务
LabVIEWCompactRIO 开发指南23 Web服务
10 0
|
1天前
|
JSON 监控 安全
LabVIEW测试和调试Web服务
LabVIEW测试和调试Web服务
12 1
|
1天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
14 1
|
1天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
1天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
30 5
|
1天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
1天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)