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


相关文章
|
2天前
|
中间件 API Go
使用Echo和Gin构建高性能Web服务的技术文档
本文档对比了Go语言中的两个流行Web框架——Echo和Gin。Echo是一个高性能、可扩展的框架,适合构建微服务和API,强调简洁API和并发性能。Gin基于net/http包,具有Martini风格API,以其快速路由和丰富社区支持闻名。在性能方面,Gin的路由性能出色,两者并发性能均强,内存占用低。文中还提供了使用Echo和Gin构建Web服务的代码示例,帮助开发者了解如何运用这两个框架。选择框架应考虑项目需求和个人喜好。
13 2
|
2天前
|
SQL 缓存 测试技术
RESTful API设计的最佳实践:构建高效、可维护的Web服务接口
【6月更文挑战第11天】构建高效、可维护的RESTful API涉及多个最佳实践:遵循客户端-服务器架构、无状态性等REST原则;设计时考虑URL结构(动词+宾语,使用标准HTTP方法)、使用HTTP状态码、统一响应格式及错误处理;确保数据安全(HTTPS、认证授权、输入验证);实施版本控制;并提供详细文档和测试用例。这些实践能提升Web服务接口的性能和质量。
|
6天前
|
JavaScript 前端开发 定位技术
Rest风格WEB服务(Rest Style Web Service)的真相
Rest风格WEB服务(Rest Style Web Service)的真相
21 1
|
7天前
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
|
7天前
|
Ubuntu Shell Linux
linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
|
7天前
|
监控 Shell Linux
shell linux中用shell写一个占用CPU的脚本
shell linux中用shell写一个占用CPU的脚本
|
7天前
|
Shell Linux
shell linux中shell脚本编写俄罗斯方块
shell linux中shell脚本编写俄罗斯方块
|
8天前
|
Shell Linux Perl
Linux shell脚本sed使用
Linux shell脚本sed使用
|
8天前
|
Shell Linux
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
|
8天前
|
Shell Linux BI
linux shell脚本中 if 条件判断
linux shell脚本中 if 条件判断