天天看點

利用Shell腳本對多個Tomcat進行重新開機

前言

雖然在一台伺服器上安裝了若幹個Tomcat,保證了網站的順利運作,但随之而來帶來的一個問題就是,當其中某個Tomcat 崩潰時,需要對其進行重新開機。由于重新開機的Shell代碼已經有了,不過就是隻能啟動一個Tomcat,是以對以前的Shell代碼進行了修改,使其支援對多個Tomcat的重新開機。

腳本

相關的腳本如下所示:

#!/bin/ksh
log=/var/log/tomcat_web/tomcatrun-logthome=/usr/local/tomcat

ip="192.168.1.35"
port="8085"

cluster="192.168.1.35:8080|tomcat1 192.168.1.35:8085|tomcat2"
for server in $cluster
  do
   echo "$server"|while IFS="|" read f1 f2
   do
     host="$f1"
     servicename="$f2"

     result=`/usr/bin/wget -S --spider --tries=3 --timeout=3 http://$host/blank/word.jsp 2>&1 | grep HTTP/1.1|awk '{print $2}'`
     if [ "$result" = "200" ]
     then
       echo "Tomcat $host $servicename Running OK"
     else
       sleep 5

       result=`/usr/bin/wget -S --spider --tries=5 --timeout=3 http://$host/blank/word.jsp 2>&1 | grep HTTP/1.1|awk '{print $2}'`
       if [ "$result" = "200" ]
       then
         echo "Tomcat $host $servicename Running OK"
       else
         echo "Tomcat $host $servicename is not runnng : `date +%Y/%m/%d-%H:%M:%S`"
         service $servicename start
         echo "Tomcat $host $servicename restart finish."
       fi
     fi
   done
  done