shell判断文件是否有变化


      java假死,但是进程还在,可以通过判断一段时间内日志文件是否有变化,来判断java是否假死

      shell脚本如下:
   

   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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


上一篇:F. The Treasure of The Segments


下一篇:Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表