定时监控服务,告警,并启动服务


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

posted @ 2015-06-08 11:47  玩石  阅读(1116)  评论(0编辑  收藏  举报