shell腳本檢測tomcat進程佔用內存大小

腳本做用:監控運行中的tomcat內存佔用大小,當內存超過所定義的最大使用內存時,自動重啓tomcat,達到釋放內存的效果。java

腳本以下 check_tomcat.sh:tomcat

#!/bin/bash
#by Lia
#check tomcat process memery.
#bash

#define tomcat process, if outride the number, then restart tomcat server.ide

#4194305 kb = 4 G
tomcat_mem=4194304rest

#get pids of tomcat5,tomcat6
tomcat_pid=`ps -ef | grep tomcat | grep java | awk 'NR==1 {print $2}'`
echo $tomcat_pidserver

#get tomcat5's memery(KB).
tomcat_mem=`cat /proc/$tomcat_pid/status | grep -e VmRSS | awk 'NR==1 {print $2}'`
echo $tomcat_memcrontab

#tomcat env
tomcat_home=/opt/tomcat內存

#define tomcat restart function
function restart_tomcat()
{
pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'`
echo $pidget

cd $tomcat_home/binio

if [ -n "$pid" ]
then
{
echo ===========shutdown================
./shutdown.sh
sleep 10

pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'`
if [ -n "$pid" ]
then
{
sleep 2
echo ========kill tomcat6==============
kill -9 $pid
}
fi
sleep 3
echo ===========startup.sh==============
./startup.sh
}
else
echo ===========startup.sh==============
./startup.sh
fi
}

#check log dir or not, then mkdir log dir
[ ! -d logs ] && mkdir -pv logs

#if tomcat process memery outride tomcat_mem, then restart tomcat server.
if [[ $tomcat_mem -gt $tomcat_mem ]]; then
echo `date "+%F %T"` [Tomcat5 RUNNING]Tomcat\'s memery is outride.>>logs/restart_tomcat_`date "+%F"`.log
restart_tomcat
else
echo `date "+%F %T"` [Tomcat5 RESTART]Tomcat\'s memery not outride.>>logs/restart_tomcat_`date "+%F"`.log
fi

可將腳本寫入crontab中,定時檢測。

相關文章
相關標籤/搜索