#!/bin/bash
path=/usr/local/nagios/libexec
#####定义脚本存放的绝对路径##########
logfile=/var/log/jboosmoniter.log
########定义日志文件名和存放的绝对路径###############
date=`(date +%D--%T)`
##########定义时间格式#############
ps -eo pid,tty,user,comm,stime,etime | more |grep java|sed 's/://g'>$path/pid.txt
##############得出jboos进程运行的信息并且输出到文件pid.txt中###############
result=`( awk '/master/ {print $6}' $path/pid.txt |sed -e 's/://g' -e 's/-//g')`
################得出jboos进程运行的时间并且赋值给result变量##############
$path/check_http -H -p 8080 -u /registration/index.jsp >$path/a.txt
##############向 发起HTTP连接并且把得到的状态信息输出到a.txt##########
a=`(awk '{print $4}' $path/a.txt)`
###########得出http连接的状态值并且输出给变量a##################
echo $a >$path/states.txt
################把变量a的值输出给states.txt#################################
valuse=`(cat $path/states.txt)`
##############变量values存的就是http连接的状态值#########################
awk '/refused/ {print $2}' $path/a.txt>$path/b.txt
##########该语句判断的是当服务已死的时候的状态值,赋值给b.txt####################
f=`(cat $path/b.txt)`
#####变量f为状态值######
q=refused
#######变量q是判断服务是否死掉的标准#######
level=1000
################变量level是区分服务正在重启与服务器内存溢出的标准#################
if [ $valuse != 200 ]
#########判断http连接状态是否正常##########
then
if (( "10#$result" > "$level" ))
##########区分服务正在重启与内存溢出的状态#################
then
killall -9 java;/etc/init.d/jboss start;echo "the jboos server have reboot on $date">>$logfile
################重启服务并且记录日志###########################
fi
fi
if [ "$f" = "$q" ]
##############判断是否符合服务已死的条件##########
then
killall -9 java;/etc/init.d/jboss start;echo "the jboos server have dead but it start on $date">>$logfile
################重启服务并且记录日志###########################
fi
阅读(594) | 评论(0) | 转发(0) |