一个根据内存使用情况重启tomcat的小脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个根据内存使用情况重启tomcat的小脚本相关的知识,希望对你有一定的参考价值。

    有一台服务器上部署了tomcat,随着时间的推移,内存消耗越来越大,所以写了一个小脚本配合crontab定时检测内存,不足的情况下重启tomcat。

#!/bin/bash

#tomcat restart:out of memory

LOG=./restart_tomcat.log

TOMCAT=/tomcat/bin/

TOMCATDIR=/tomcat

 

echo"----------------------------" >> $LOG

mem_total=$(free -m |grep Mem|awk ‘{print$2}‘)

mem_used=$(free -m|grep -|awk ‘{print $3}‘)

mem_rate=$(echo "scale=4;$mem_used /$mem_total" | bc)

percent_part1=$(echo $mem_rate | cut -c2-3)

percent_part2=$(echo $mem_rate | cut -c4-5)

/usr/bin/free -m  >>$LOG

echo "System memery is already use:$percent_part1.$percent_part2%"| tee -a $LOG

 

if (( percent_part1  >= 90 ));

then

         echo"----------------------------" >> $LOG;

         date  | tee -a $LOG;

         bash$TOMCATDIR/checktomcat | tee -a $LOG;

         sleep5;

 

         echo"----------------------------" >> $LOG;

         date  | tee -a $LOG;

         echo"kill java" >>$LOG;

         killall  java | tee -a $LOG;

         sleep5;

         echo"----------------------------" >> $LOG;

         netstat-anptul|grep :80 |grep LISTEN| tee -a $LOG;

 

         echo"----------------------------" >> $LOG;

         date  | tee -a $LOG;

         echo"start tomcat" >>$LOG;

         bash$TOMCAT/startup.sh | tee -a $LOG;

         sleep10;

 

         echo"----------------------------" >> $LOG;

         date  | tee -a $LOG;

         bash$TOMCATDIR/checktomcat | tee -a $LOG;

         netstat-anptul|grep :80 |grep LISTEN| tee -a $LOG;

         sleep5;

 

else

 

         date>>$LOG;

         echo"The server is very good."| tee -a $LOG;

 

fi;

 

exit 0


本文出自 “拔电源的运维空间” 博客,请务必保留此出处http://zhangdj.blog.51cto.com/9210512/1880090

以上是关于一个根据内存使用情况重启tomcat的小脚本的主要内容,如果未能解决你的问题,请参考以下文章

简单的Linux下重启多个Tomcat服务的脚本

Tomcat如何检测内存泄漏

通过端口查找对应的PID和路径,并重启tomcat

linux下tomcat重启脚本

linux下tomcat重启脚本(使用tomcat.pid)(推荐)

tomcat重启脚本