脚本功能:每5分钟监控服务进程,本次进程为3个tomcat服务,当服务挂起时,发送报警邮件,并启动服务

1:创建日志文件脚本

[root@shell ~]# cat a.sh
#!/bin/bash
b=a.`date +%Y%m%d-%T`.log

echo -n "-------------------------$b"

[root@shell ~]# sh a.sh
-------------------------a.20150604-18:04:20.log

2:创建服务启动脚本

#!/bin/bash

b=a.`date +%Y%m%d-%T`.log

#sh /opt/apache-tomcat-6.0.35/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35/logs/catalina.out >> $b &

sh /opt/apache-tomcat-6.0.35/bin/startup.sh >> $b &

sleep 30

echo "tomcat8081 start ********************************************************************" >>$b &

#sh /opt/apache-tomcat-6.0.35_8082/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8082/logs/catalina.out >> $b &

##如果采用tail 日志输出,会把所有的日志都输入到这个文件中##

sh /opt/apache-tomcat-6.0.35_8082/bin/startup.sh >> $b &

sleep 60

echo "tomcat8082 start over********************************************************************" >>$b &

#sh /opt/apache-tomcat-6.0.35_8083/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8083/logs/catalina.out >>$b &

sh /opt/apache-tomcat-6.0.35_8083/bin/startup.sh >>$b &

sleep 90
echo "tomcat8083 start ********************************************************************" >>$b &

3.通过外部smtp服务,发送报警短信

yum -y install mailx

yum -y install sendmail

启动sendmail服务。

service sendmail start

配置mail.rc外部smtp服务

set from=111@qq.com
set smtp=mail.qq.com
set smtp-auth-user=111@qq.com
set smtp-auth-password=qq
set smtp-auth=login

测试echo java stop,please check | mail -s "title" benren@qq.com

我们看到上面邮件已经发送成功!

4:修改服务启动脚本,当服务挂起得时候,发送报警短信,并启动服务

start_java(){

killall -9 java
b=a.`date +%Y%m%d-%T`.log

sh /opt/apache-tomcat-6.0.35/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35/logs/catalina.out >> $b &

sleep 30

echo "tomcat8081 start ********************************************************************" >>$b &

sh /opt/apache-tomcat-6.0.35_8082/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8082/logs/catalina.out >> $b &

echo "tomcat8082 start **********************************************************************" >>$b &

sh /opt/apache-tomcat-6.0.35_8083/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8083/logs/catalina.out >>$b &

echo "tomcat8083 start **************************************************************************" >>$b &
}

proess_num=`ps -C java --no-header|wc -l`

if [ $proess_num -ne 3 ];then
echo "'HOSTNAME=$HOSTNAME' '$IP' error,please check" | mail -s "wheat-conver" 11@qq.com 22@qq.com
start_java
fi

5:加入定时任务,每5分钟检测一次

crontab -e

  

5:mail命令的用法简介

使用mail发邮件时,必须先将sendmail服务启动。

mail –s “邮件主题” –c”抄送地址” –b “密送地址” -- -f 发送人邮件地址 –F 发件人姓名 < 要发送的邮件内容

mail -s test yangfang@fudan.edu.cn #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

echo “mail content”|mail -s test yangfang@fudan.edu.cn #第二种方法,我用的最多,可能是喜欢管道的缘故吧

mail -s test yangfang@fudan.edu.cn < file #第三种方法,以file的内容为邮件内容发信

转载于:https://www.cnblogs.com/liangsky/p/4560517.html

定时监控服务,告警,并启动服务相关推荐

  1. dubbo内置哪几种服务容器_dubbo启动服务之容器(Container)

    讲解dubbo启动服务的时候先来了解下java的spi机制 后期文章会首发于本专栏,欢迎关注 JAVA高级进阶​zhuanlan.zhihu.com 一:SPI 简介 SPI 全称为 (Service ...

  2. Android服务一 创建启动服务

    若要学习创建绑定服务,请查看下篇Android服务二 创建绑定服务 启动服务 基于Service package service;import android.app.Service; import ...

  3. centos 开机启动java_Centos 7将java jar包自定义开机启动服务

    Centos 7将java jar包自定义开机启动服务 1. 先上 jar包的启动脚本 vim service.sh #!/bin/bash # 需要变更的参数 # 先查看java绝对路径:which ...

  4. 批处理启动vm虚拟机服务 vm12启动无界面启动vm虚拟机系统 windows上如何操作服务 sc net启动关闭服务...

    windows(win10)批处理脚本 打开vm虚拟机的服务,并且开启无界面虚拟机 @echo off net start "vds" net start "VMAuth ...

  5. mysql的优化-添加环境变量启动服务

    >回顾 前面我们已经成功的安装好了数据 但是每一次启动数据库的时候,都会有这样的一些经历 首先要把服务端开启 然后要开启客户端连接服务端输入账号和密码连接成功 . 服务端的开启 服务端文件的路径 ...

  6. c# windows服务状态、启动和停止服务

    首先先引用System.ServiceProcess.dll 然后在引用命名空间using System.ServiceProcess; ServiceController sc = new Serv ...

  7. java 服务注册中心_服务治理的含义和java最流行的微服务框架服务治理注册中心的搭建...

    原标题:服务治理的含义和java最流行的微服务框架服务治理注册中心的搭建 Spring Cloud Eureka基于Netflix Eureka做了二次封装,是Spring Cloud Netflix ...

  8. linux怎么开启samba服务,LINUX开启SAMBA服务

    samba,用于网络文件共享,类似于nfs, samba多用于win和linux之间 linux之间多用nfs c/s架构 smb协议 samba主要是两个服务,核心启动服务smb,监听139tcp端 ...

  9. linux 查询注册服务,window下注册服务的命令小结

    1. 描述:     SC 是用于与服务控制管理器通信的命令行程序 . 用法: sc [command] [service name] ... 选项 的格式为 可以键入 "sc [comma ...

  10. prometheus 配置服务器监控、服务监控、容器中服务监控与告警

    最近公司有几个服务遇到了瓶颈,也就是数据量增加了,没有人发现,这不是缺少一个监控服务和告警的系统吗? 主要需求是监控每个服务,顺带监控一下服务器和一些中间件,这里采集的2种,zabbix和promet ...

最新文章

  1. UTRAN 的用户面和控制面
  2. 2021桓台高考成绩查询,桓台中考成绩查询2021
  3. [转]Supporting OData Query Options in ASP.NET Web API 2
  4. java影院购票系统开题报告,开题报告-网上电影院购票系统的设计与实现.doc
  5. LeetCode 第 18 场双周赛(188/587,前32%)
  6. 基本排序算法:Python实现
  7. 设计模式之--生成器模式与抽象工厂模式的比较
  8. select下拉框option默认选中(php模板渲染)
  9. 黑苹果内置硬盘识别成外置硬盘_空间大?安全更重要,麦沃 K35274D硬盘阵列盒使用体验--数据无价...
  10. 金融行业比较有名气的公司
  11. c 实现服务器性能监控,Prometheus——进行服务器性能监控的一件法宝
  12. 439、Java框架93 -【SpringMVC - 拦截器】 2020.12.14
  13. 群同态和群同构的区别_同构和同态有什么区别,它们可以用在哪些方面?
  14. 大数据团队必须设置的五种职位
  15. 对PowerMill编程软件还不了解?赶紧来看看这篇文章吧
  16. 关于java的项目部署以及需要注意的地方
  17. JDK版本切换---JDK9.0版本切换至JDK1.8
  18. js 计算误差的原因 及 加减乘除计算方法
  19. out of memory常见解决方法
  20. win10 LTSC 2019,发现默认打开图片的程序是“画图”,图片查看器无法正常启动

热门文章

  1. linux 忘记原来的myql的root的密码
  2. Power BI for Office 365 概览
  3. Enum定义位域, 即可以通过位操作来产生未命名的值
  4. H2介绍 – Java嵌入式数据库
  5. 一位70后的感叹:下半辈子我会陷入贫困吗?
  6. win64 安装Oracle 11g
  7. 牛逼!它比传统数据库快 100-1000,真不相信?
  8. CodeReview 常见代码问题( 下 )
  9. 架构师进阶:Linux进程间如何共享内存?
  10. python3.7安装pyltp出错_安装pyltp遇到的问题及解决办法