简单脚本处理内存溢出

公司服务器上部署个java独立模块,运行一段时间后,就会爆出 java.lang.OutOfMemoryError: Java heap space,而且系统下发告警短信,半夜发过来,还是冬天,那个心情我就不说了,更让人恼火的是有时家里的网络出问题了,唉,那个心情啊    但是还是要处理,而且事情比较忙,就写个简单的脚本先处理下,发现有溢出,自动重启。脚本如下:
#!/bin/bash
#监控进程是否出现堆空间内存溢出,如果发现内存溢出,则重启脚本

base_path=/opt/apps/test
log_path=${base_path}/log

while ((1==1))
do
    grep 'OutOfMemoryError' ${log_path}/server_nohup.log > /dev/null

    #进程日志中存在内存溢出
    if [ "$?" == "0" ] ; then
	curr_now=$(date +'%F %T')
	echo "${curr_now}. OutOfMemoryError found in server_nohup.log, restart      script will be invoked." | tee ${log_path}/monitor.log
	> ${log_path}/server_nohup.log
	sh ${base_path}/start_server.sh
	echo "Restart OK." | tee ${log_path}/monitor.log
    fi;
    
    #60秒检测一次
    sleep 60
done


start_server.sh 为应用程序的启动脚本。
完事,以后就安心了,等有时间再去检查程序存在的问题。

你可能感兴趣的:(shell,监控脚本)