shell脚本检测tomcat进程占用内存大小

本文提供了一个Shell脚本,用于实时监控Tomcat服务器的内存使用情况,并在内存超过预设阈值时自动重启服务器,以释放内存资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脚本作用:监控运行中的tomcat内存占用大小,当内存超过所定义的最大使用内存时,自动重启tomcat,达到释放内存的效果。

脚本如下 check_tomcat.sh:

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

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

#4194305 kb = 4 G
tomcat_mem=4194304

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

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

#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 $pid

cd $tomcat_home/bin

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中,定时检测。

转载于:https://my.oschina.net/yiyuqiuchi/blog/188918

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值