案例五:shell脚本实现定时监控http服务的运行状态
注意:监控方法可以为端口、进程、URL模拟访问方式,或者三种方法综合。
说明:由于截止到目前仅讲了if语句,因此,就请大家用if语句来实现。
[root@oldboy-B scripts]# cat apachemon #!/bin/sh #created by oldboy 20110523 . /etc/init.d/functions HTTPPRONUM=`ps -ef|grep http|grep -v grep|wc -l` #if [ $HTTPPRONUM -lt 1 ];then if [[ $HTTPPRONUM -lt 1 ]];then action “httpd is not running” /bin/false action “httpd is not running” /bin/false >/tmp/httpd.log httpdctl restart >/dev/null 2>&1 action “httpd is restart” /bin/true mail -s “`uname -n`’s httpd restarted at `(date)`” 31333741@qq.com exit 1 else action “httpd is running” /bin/true exit 0 fi
[root@oldboy-B scripts]# apachemon httpd is running [确定] [root@oldboy-B scripts]# pkill httpd [root@oldboy-B scripts]# ps -ef |grep http |grep -v grep [root@oldboy-B scripts]# apachemon httpd is not running [失败] httpd is restart [确定] [root@oldboy-B scripts]# ps -ef|grep http|grep -v grep root 5845 1 1 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5852 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5853 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5854 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5855 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5856 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5857 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5858 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart apache 5859 5845 0 15:59 ? 00:00:00 /usr/sbin/httpd -k restart
[root@oldboy-B /]# echo oldboytest >/var/www/html/index.htm [root@oldboy-B /]# wget –quiet –spider http://10.0.0.161/index.htm [root@oldboy-B /]# echo $? 0 [root@oldboy-B /]# ll index.htm ls: index.htm: 没有那个文件或目录
[root@oldboy-B scripts]# cat apachemon1 #!/bin/sh #created by oldboy 20110523 . /etc/init.d/functions #HTTPPRONUM=`ps -ef|grep http|grep -v grep|wc -l` #=====>这个是基于http方式进行判断 wget –quiet –spider http://10.0.0.161/index.htm #=====>这个是基于WGET URL方式进行判断 if [ $? -ne 0 ];then action “httpd is not running” /bin/false >/tmp/httpd.log httpdctl restart >/dev/null 2>&1 action “httpd is restart” /bin/true >>/tmp/httpd.log mail -s “`uname -n`’s httpd restarted at `(date)`” mail@qq.com exit 1 else action “httpd is running” /bin/true exit 0 fi
[root@oldboy-B scripts]# cat apachemon1 #!/bin/sh #created by oldboy 20110523 # . /etc/init.d/functions wget –quiet –spider http://10.0.0.161/index.htm #=====>这个是基于WGET URL方式进行判断 if [ $? -ne 0 ];then action “httpd is not running” /bin/false >/tmp/httpd.log httpdctl restart >/dev/null 2>&1 action “httpd is restart” /bin/true >>/tmp/httpd.log mail -s “`uname -n`’s httpd restarted at `(date)`” 31333741@qq.com exit 1 fi
[root@oldboy-B scripts]# cat apachemon1 #!/bin/sh #created by oldboy 20110523 # . /etc/init.d/functions HTTPPORTNUM=`netstat -lnt|grep 80|grep -v grep|wc -l` HTTPPRONUM=`ps -ef|grep http|grep -v grep|wc -l` wget –quiet –spider http://10.0.0.161/index.htm && RETVAL=$? if [ $RETVAL -ne 0 ] || [ $HTTPPORTNUM -ne 1 ] || [ $HTTPPRONUM -lt 1 ] ;then #if [ "$RETVAL" != "0" -o "$HTTPPORTNUM" != "1" -o "$HTTPPRONUM" \< "1" ] ;then action “httpd is not running” /bin/false action “httpd is not running” /bin/false >/tmp/httpd.log httpdctl restart >/dev/null 2>&1 action “httpd is restart” /bin/true mail -s “`uname -n`’s httpd restarted at `(date)`” 31333741@qq.com exit 1 else action “httpd is running” /bin/true exit 0 fi
案例五:shell脚本实现定时监控http服务的运行状态的更多相关文章
- linux shell脚本守护进程监控svn服务
最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...
- 【shell脚本】自动监控tomcat服务===autoCheck.sh
自动监控tomcat服务,当tommcat服务挂掉时自动重启 一.脚本内容 [root@localhost ]# cat /root/autoCheck.sh #!/bin/bash startTom ...
- CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存
CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存来自:互联网 时间:2020-03-22 阅读:114以下情况可能造成Linux内存占用过高服务配置存在直接分配错误,或隐性分 ...
- Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务
文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?
一.背景 在我之前的博客 git学习--> Gitlab如何进行备份恢复与迁移? (地址:http://blog.csdn.net/ouyang_peng/article/details/770 ...
- shell脚本实例-系统监控
shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...
- 用shell脚本实现定时备份数据库
1.备份数据库的方法 可以使用命令查看 ls /usr/local/mysql/bin 这个mysqldump就是系统内置的用来备份数据库的工具. 2.实现方法 ①先随便进入一个位置创建一个目录 ② ...
- Shell脚本日志关键字监控+告警
最近小张的爬虫程序越来越多,可当爬虫程序报错,不能及时的发现,从而造成某些重要信息不能及时获取的问题,更有甚者,遭到领导的批评.于是就在想有没有一种方法,当爬取信息报错的时候,可以通过邮件或者短信的方 ...
- 实验五 shell脚本编程
项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17041428-朱槐健 作业学习目标 1. 了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语 ...
随机推荐
- gin中自定义http的配置
package main import ( "github.com/gin-gonic/gin" "net/http" "time" ) f ...
- CSS基本语法(三)
目录 CSS基础语法(三) 十五.CSS定位 1.为什么要使用定位 2.定位组成 定位模式 静态定位 相对定位 绝对定位** 固定定位 粘性定位 边偏移 子绝父相 3.定位的叠放次序 4.拓展 绝对定 ...
- 知识增强的预训练语言模型系列之KEPLER:如何针对上下文和知识图谱联合训练
原创作者 | 杨健 论文标题: KEPLER: A unified model for knowledge embedding and pre-trained language representat ...
- centos vnc配置总结
编辑xstart [root@localhost .vnc]# vim xstartup #!/bin/sh [ -r /etc/sysconfig/i18n ] && . /etc/ ...
- springboot+atomikos+druid 数据库连接失效分析
一.起因 最近查看系统的后台日志,经常发现这样的报错信息:The last package successfully received from the server was 40802382 mil ...
- WinForms 获取文件夹的基本信息
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Da ...
- ABC209 E Shiritori
考虑对这个问题进行转化: 显然我们只关注每个串前三个棋子和后三个棋子,并且根据题目的特性,我们可以将任意的三个字符看作点,将一个字符串看作连接两个点的边,这样我们得到了一张点数为 \(52 ^ 3\) ...
- Zookeeper应用场景汇总(超详细)
Zookeeper典型应用场景汇总 数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新.例 ...
- Sleep_Yield_Join
名称解释 Sleep:意思就是睡眠,当前线程暂停一段时间让给别的线程去运行;Sleep是怎么复活的?由你的睡眠时间而定,等睡眠到规定的时间自动复活. Yield:就是当前线程正在执行的时候停止下来进入 ...
- 一次线上服务高 CPU 占用优化实践 (转)
线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...