利用Shell指令碼對多個Tomcat進行重啟
阿新 • • 發佈:2019-01-25
前言
雖然在一臺伺服器上安裝了若干個Tomcat,保證了網站的順利執行,但隨之而來帶來的一個問題就是,當其中某個Tomcat 崩潰時,需要對其進行重啟。由於重啟的Shell程式碼已經有了,不過就是隻能啟動一個Tomcat,所以對以前的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