#!/bin/bash
##########################################################################################
# Function: When monitoring Tomcat occur "OutOfMemory" , automatic restart Tomcat and APED
# Warring:
# This script only apply to server only one JAVA process
# Date: 2015-02-17 (Chinese New Year's Eve)
##########################################################################################
export JAVA_HOME=/home/app01/tools/jdk1.6.0_14
v_pid=`/sbin/pidof java`
v_ape=`/sbin/pidof aped`
v_pid0=`/sbin/pidof java|wc -l`
v_ape0=`/sbin/pidof aped|wc -l`
V_ERROR_LOG=/home/app01/tomcat/logs/catalina.out
V_MODIFY_LOG=`/bin/find /home/app01/tomcat/logs/ -type f -cmin -2 -name "*.out"|wc -l`
V_ERROR_COUNT=`/usr/bin/tail -n30 $V_ERROR_LOG|egrep -i 'OutOfMemory'|wc -l`
V_LOG=/home/app01/tomcat/logs/error_`date +%Y%m%d`.log
# ###############################################################
# When tomcat break down, appear error "OutOfMemory"
# First: kill -9 APED and Tomcat Process
# Second: Restart APED and Tomcat Process
##################################################################
echo $V_MODIFY_LOG >$V_LOG
echo $V_ERROR_COUNT>>$V_LOG
if [ $V_MODIFY_LOG -gt 0 ] && [ $V_ERROR_COUNT -gt 0 ];then
>$V_LOG
echo -e '+++++++++++++++Tomcat is OutOfMemory, will kill it and restart+++++++++++\n'
/bin/kill -9 $v_pid
/usr/bin/sudo /bin/kill -9 $v_ape
sleep 10
v_ape1=`/sbin/pidof aped|wc -l`
v_pid1=`/sbin/pidof java|wc -l`
if [ $v_ape1 -eq 0 ];then
echo -e 'Warring:---------------------- APED IS DOWN-------------------\n'
cd /home/app01/ape-server/bin
/usr/bin/sudo /home/app01/ape-server/bin/aped
else
echo -e '++++++++++++++++APED is Running+++++++++++++++++++++++++++ \n'
fi
if [ $v_pid1 -eq 0 ];then
echo -e 'Warring:---------------------- Tomcat is down-------------------\n'
/home/app01/tomcat/bin/startup.sh
sleep 10
tail -n100 $V_ERROR_LOG>>$V_LOG
# /bin/mail -s "$SUBJECT" "$EMAIL"<$V_LOG
else
echo -e '+++++++++++++++++++++++Tomcat is Running.+++++++++++++++++++++++++++ \n'
fi
fi
# Normal start aped
if [ $v_ape0 -eq 0 ];then
echo -e 'Warring:---------------------- APED IS DOWN-------------------\n'
cd /home/app01/ape-server/bin
/usr/bin/sudo /home/app01/ape-server/bin/aped
else
echo -e '++++++++++++++++APED is Running+++++++++++++++++++++++++++ \n'
fi
# Normal start tomcat
if [ $v_pid0 -eq 0 ]; then
echo -e 'Warring:---------------------- Tomcat is shutdown------------------- \n'
/home/app01/tomcat/bin/startup.sh
else
echo -e '+++++++++++++++++++Tomcat is Running...........+++++++++++++++++++++++++ \n'
fi
##########################################################################################
# Function: When monitoring Tomcat occur "OutOfMemory" , automatic restart Tomcat and APED
# Warring:
# This script only apply to server only one JAVA process
# Date: 2015-02-17 (Chinese New Year's Eve)
##########################################################################################
export JAVA_HOME=/home/app01/tools/jdk1.6.0_14
v_pid=`/sbin/pidof java`
v_ape=`/sbin/pidof aped`
v_pid0=`/sbin/pidof java|wc -l`
v_ape0=`/sbin/pidof aped|wc -l`
V_ERROR_LOG=/home/app01/tomcat/logs/catalina.out
V_MODIFY_LOG=`/bin/find /home/app01/tomcat/logs/ -type f -cmin -2 -name "*.out"|wc -l`
V_ERROR_COUNT=`/usr/bin/tail -n30 $V_ERROR_LOG|egrep -i 'OutOfMemory'|wc -l`
V_LOG=/home/app01/tomcat/logs/error_`date +%Y%m%d`.log
# ###############################################################
# When tomcat break down, appear error "OutOfMemory"
# First: kill -9 APED and Tomcat Process
# Second: Restart APED and Tomcat Process
##################################################################
echo $V_MODIFY_LOG >$V_LOG
echo $V_ERROR_COUNT>>$V_LOG
if [ $V_MODIFY_LOG -gt 0 ] && [ $V_ERROR_COUNT -gt 0 ];then
>$V_LOG
echo -e '+++++++++++++++Tomcat is OutOfMemory, will kill it and restart+++++++++++\n'
/bin/kill -9 $v_pid
/usr/bin/sudo /bin/kill -9 $v_ape
sleep 10
v_ape1=`/sbin/pidof aped|wc -l`
v_pid1=`/sbin/pidof java|wc -l`
if [ $v_ape1 -eq 0 ];then
echo -e 'Warring:---------------------- APED IS DOWN-------------------\n'
cd /home/app01/ape-server/bin
/usr/bin/sudo /home/app01/ape-server/bin/aped
else
echo -e '++++++++++++++++APED is Running+++++++++++++++++++++++++++ \n'
fi
if [ $v_pid1 -eq 0 ];then
echo -e 'Warring:---------------------- Tomcat is down-------------------\n'
/home/app01/tomcat/bin/startup.sh
sleep 10
tail -n100 $V_ERROR_LOG>>$V_LOG
# /bin/mail -s "$SUBJECT" "$EMAIL"<$V_LOG
else
echo -e '+++++++++++++++++++++++Tomcat is Running.+++++++++++++++++++++++++++ \n'
fi
fi
# Normal start aped
if [ $v_ape0 -eq 0 ];then
echo -e 'Warring:---------------------- APED IS DOWN-------------------\n'
cd /home/app01/ape-server/bin
/usr/bin/sudo /home/app01/ape-server/bin/aped
else
echo -e '++++++++++++++++APED is Running+++++++++++++++++++++++++++ \n'
fi
# Normal start tomcat
if [ $v_pid0 -eq 0 ]; then
echo -e 'Warring:---------------------- Tomcat is shutdown------------------- \n'
/home/app01/tomcat/bin/startup.sh
else
echo -e '+++++++++++++++++++Tomcat is Running...........+++++++++++++++++++++++++ \n'
fi