天天看點

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

<code>#!/bin/bash</code>

<code>#</code>

<code>#通過比較五分鐘前後,日志檔案md5值是否相同,來判斷日志檔案是否有變化,進而判斷java是否假死</code>

<code>#請根據實際情況,修改環境變量,項目路徑</code>

<code>#加入計劃任務執行</code>

<code>function</code> <code>RestartJava()</code>

<code>{</code>

<code>export</code>  <code>JAVA_HOME=</code><code>/opt/apps/jdk1</code><code>.6.0_41</code>

<code>export</code>  <code>PATH=$PATH:</code><code>/opt/apps/jdk1</code><code>.6.0_41</code><code>/bin</code>

<code>export</code>  <code>CLASSPATH=.:$JAVA_HOME</code><code>/lib/tools</code><code>.jar:$JAVA_HOME</code><code>/lib/dt</code><code>.jar:$JAVA_HOME</code><code>/jre/lib/rt</code><code>.jar</code>

<code>JavaPath=</code><code>"/opt/apps/apache-tomcat-6.0.37"</code>

<code>JavaId=$(</code><code>ps</code> <code>-ef|</code><code>grep</code> <code>java  |</code><code>grep</code> <code>$JavaPath |</code><code>grep</code> <code>-</code><code>v</code> <code>"grep"</code> <code>|</code><code>awk</code> <code>'{print $2}'</code><code>)</code>

<code>kill</code> <code>-9 $JavaId</code>

<code>cd</code> <code>$JavaPath</code><code>/bin</code> <code>&amp;&amp; </code><code>/bin/bash</code> <code>startup.sh</code>

<code>}</code>

<code>#while [ 1 ]</code>

<code>#do</code>

<code>First=`md5sum </code><code>/opt/shell/nohup</code><code>.out |</code><code>awk</code> <code>'{print $1}'</code><code>`</code>

<code>sleep</code> <code>300</code>

<code>Second=`md5sum </code><code>/opt/shell/nohup</code><code>.out |</code><code>awk</code> <code>'{print $1}'</code><code>`</code>

<code>if</code> <code>[[ $First == $Second ]]</code>

<code>then</code>

<code>        </code><code>echo</code> <code>"start restart java"</code> <code>&gt;</code><code>/dec/null</code> <code>2&gt;&amp;1</code>

<code>        </code><code>RestartJava</code>

<code>fi</code>

<code>#done</code>

本文轉自 穿越防火牆 51CTO部落格,原文連結:http://blog.51cto.com/sjitwant/1734238