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


相关文章
|
18天前
|
监控 Linux 调度
Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来
Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来
42 1
Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来
|
2月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
129 25
|
10月前
|
监控 前端开发 JavaScript
ARMS的Web应用监控
【8月更文挑战第23天】
139 8
|
10月前
|
存储 数据库 开发者
Ruby的魔法之旅:如何从命令行脚本演变为Web应用
【8月更文挑战第31天】在编程领域,Ruby凭借其灵活优雅的语法深受开发者喜爱。从命令行脚本到Web应用,Ruby均能游刃有余。它可以帮助我们简化日常任务,如批量重命名文件或自动备份数据。随着技能提升,Ruby还能用于开发复杂的数据抓取工具,并通过Sinatra框架快速搭建Web接口,实现功能共享。其强大的社区支持和简洁的代码风格,使Ruby成为探索编程世界的理想选择,无论处理文本还是构建应用,Ruby都能带来高效与便捷。
81 0
|
7月前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
10月前
【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
|
10月前
|
监控 关系型数据库 MySQL
【疫情监控】打造全国新冠疫情Web项目:三次优化,提升用户体验
本文分享了开发全国新冠疫情Web项目的经验和优化过程,包括调整项目结构、新增logger模块改善日志记录、实现数据实时刷新功能,以及通过spider模块代码自动更新疫情数据,提升了用户体验并简化了项目维护流程。
77 2
|
10月前
|
存储 JSON 监控
FastAPI日志之谜:如何揭开Web应用监控与调试的面纱?
【8月更文挑战第31天】在现代Web开发中,日志记录对于监控应用状态、诊断问题和了解用户行为至关重要。FastAPI框架提供了强大的日志功能,使开发者能轻松集成日志记录。本文将详细介绍如何在FastAPI中设置和利用日志,包括基础配置、请求响应日志、错误处理和结构化日志等内容,帮助提升应用的可维护性和性能。
392 0
|
10月前
|
Prometheus 监控 Cloud Native
Web服务器的日志分析与监控
【8月更文第28天】Web服务器日志提供了关于服务器活动的重要信息,包括访问记录、错误报告以及性能数据。有效地分析这些日志可以帮助我们了解用户行为、诊断问题、优化网站性能,并确保服务的高可用性。本文将介绍如何使用日志分析和实时监控工具来监测Web服务器的状态和性能指标,并提供具体的代码示例。
857 0
|
JavaScript 前端开发 API
Hello.js – Web 服务授权的 JavaScript SDK
  Hello.js 是一个客户端的 Javascript SDK,用于实现 OAuth2 认证(或者基于 OAuth 代理实现的 OAuth1)的 Web 服务和查询 REST API。 HelloJS 标准化路径和对通用的 API 响应 ,如谷歌的数据服务, Facebook 的图形和 Windows Live 连接。
1129 0

热门文章

最新文章