Linux定时检测内存,若使用率超过指标,重启Tomcat并清空内存

Linux定时检测内存,若使用率超过指标,重启Tomcat并清空内存,第1张

概述cd /usr/local vim cleanCacheTime.sh   把以下代码粘贴进去 #!/bin/bash echo "start SyncCleanCache.sh..." >> /var/log/mem_detect.log#系统分配的区总量 mem_total=`free -m | awk ‘NR==2‘ | awk ‘{print $2}‘`

cd /usr/local

vim cleanCacheTime.sh

 

把以下代码粘贴进去

#!/bin/bash  echo "start SynccleanCache.sh..." >> /var/log/mem_detect.log#系统分配的区总量   mem_total=`free -m | awk NR==2 | awk {print }`     #当前剩余的大小   mem_free=`free -m | awk NR==3 | awk {print }`     #当前已使用的used大小   mem_used=`free -m | grep Mem | awk {print  }`   echo "已使用:" >> /var/log/mem_detect.logecho $mem_used >> /var/log/mem_detect.log   if (($mem_used != 0)); then      #如果已被使用,则计算当前剩余free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0   mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc`   DATA="$(date -d "today" +"%Y-%m-%d-%H-%M") free percent is : $mem_per"  echo $DATA >> /var/log/mem_detect.log  #设置的告警值为20%(即使用超过80%的时候告警)。   mem_warn=0.20      #当前剩余百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 )   mem_Now=`expr $mem_per \> $mem_warn`      echo "是否大于告警值:" >> /var/log/mem_detect.logecho $mem_Now >> /var/log/mem_detect.log#如果当前使用超过80%(即剩余小于20%,上面的返回值等于0),释放内存  if (($mem_Now == 0)); then  echo "more than percent 80..." >> /var/log/mem_detect.log#重启tomcat并清空缓存pID=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk {print }`  echo $pIDif [ -n "$pID" ]  then  {     echo ===========shutdown================     /usr/local/apache-tomcat-7.0.65/bin/shutdown.sh     sleep 1      pID=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk {print }`   sync   echo 1 > /proc/sys/vm/drop_caches   echo 2 > /proc/sys/vm/drop_caches   echo 3 > /proc/sys/vm/drop_caches     if [ -n "$pID" ]     then      {        sleep 1         echo ========kill tomcat==============          kill -9 $pID        sync        echo 1 > /proc/sys/vm/drop_caches        echo 2 > /proc/sys/vm/drop_caches        echo 3 > /proc/sys/vm/drop_caches     }     fi     sleep 2     echo ===========startup.sh==============     /usr/local/apache-tomcat-7.0.65/bin/startup.sh   }  else  echo ===========startup.sh==============  /usr/local/apache-tomcat-7.0.65/bin/startup.sh    fi sync  echo 1 > /proc/sys/vm/drop_caches  echo 2 > /proc/sys/vm/drop_caches  echo 3 > /proc/sys/vm/drop_caches  #将release memory OK !写入temp文件夹的memstat_日期.log日志中  echo "--->release memory OK ! " >> /var/log/mem_detect.log  fi  fi

 

授权

chmod 777 cleanCacheTime.sh

 

测试

./cleanCacheTime.sh

 

到日志文件中看是否有问题,若没有问题

crond -e 

把下面这句粘贴进去并保存退出(每分钟执行一次)

*/1 * * * * /usr/local/cleanCacheTask.sh >>/usr/local/cleanCache.log

 

service crond start

 

结束

总结

以上是内存溢出为你收集整理的Linux定时检测内存,若使用率超过指标,重启Tomcat并清空内存全部内容,希望文章能够帮你解决Linux定时检测内存,若使用率超过指标,重启Tomcat并清空内存所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1029978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存