shell脚本检测tomcat进程占用内存大小
2013-12-30 16:28
711 查看
脚本作用:监控运行中的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中,定时检测。
脚本如下 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中,定时检测。
相关文章推荐
- Shell脚本查看进程内存真实占用情况
- Shell脚本编程——监视内存占用最高的进程
- Shell脚本查看进程内存真实占用情况
- 【Shell/Python】Linux 进程自动监控bash shell脚本 监控VPS服务器负载/CPU及内存占用 自动重启
- Shell练习-计算一下所有进程所占用内存大小的和
- zabbix结合shell实现自动发现占用内存最大top10进程并监控其资源
- 计算进程所占用的内存大小的和
- python检测空间储存剩余大小和指定文件夹内存占用的实例
- python检测空间储存剩余大小和指定文件夹内存占用
- 用于检测进程的shell脚本代码小结
- Script:计算Oracle Streams进程所占用的内存大小
- adb shell dumpsys meminfo <packageName> [-d] 查看app(进程)的内存占用(未完待续)
- Shell脚本-某程序占用CPU及内存监测
- 查看进程占用的内存大小
- 通过进程检测服务时脚本文件名不要起要检测的服务名字命名 shell程序从上到下执行若定义函数或引用系统函数需先定义 kill -USR2
- zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数
- 如何按占用内存大小查看Linux下的进程
- Shell脚本实现监控swap空间使用情况和查看占用swap的进程
- linux下如何自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现)
- 使用shell 脚本对 Linux 系统进程的CPU使用率与内存资源进行监控