您的位置:首页 > 运维架构 > Shell

shell判断文件是否有变化

2016-01-12 16:24 459 查看
java假死,但是进程还在,可以通过判断一段时间内日志文件是否有变化,来判断java是否假死
shell脚本如下:

#!/bin/bash
#
#通过比较五分钟前后,日志文件md5值是否相同,来判断日志文件是否有变化,从而判断java是否假死
#请根据实际情况,修改环境变量,项目路径
#加入计划任务执行
#
function RestartJava()
{
export  JAVA_HOME=/opt/apps/jdk1.6.0_41
export  PATH=$PATH:/opt/apps/jdk1.6.0_41/bin
export  CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar
JavaPath="/opt/apps/apache-tomcat-6.0.37"
JavaId=$(ps -ef|grep java  |grep $JavaPath |grep -v "grep" |awk '{print $2}')

kill -9 $JavaId
cd $JavaPath/bin && /bin/bash startup.sh
}

#while [ 1 ]
#do
First=`md5sum /opt/shell/nohup.out |awk '{print $1}'`
sleep 300
Second=`md5sum /opt/shell/nohup.out |awk '{print $1}'`

if [[ $First == $Second ]]
then
echo "start restart java" >/dec/null 2>&1
RestartJava
fi

#done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 假死 文件变化