zoukankan      html  css  js  c++  java
  • 定时监控服务,告警,并启动服务


    脚本功能:每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的内容为邮件内容发信

  • 相关阅读:
    jenkins更换国内源
    部署jdk和maven
    Prometheus监控Nginx
    Prometheus监控MySQL
    MySql里动态视图的实现
    MySql里split函数的实现
    HTML编码规范
    消弱反驳18招
    Pr2020
    记忆准则
  • 原文地址:https://www.cnblogs.com/liangsky/p/4560517.html
Copyright © 2011-2022 走看看