Linux 中 tomcat 服務檢測/重啓 sh 腳本

最近在重構,tomcat工程很不穩定,需要做一個自動檢測並重啓的程序,之前用python寫了個程序,
但由於有多個工程,並分別部署在多個服務器上,還需要一個個的去配置python環境,有點麻煩,所以就想着直接寫個 shell 腳本
該腳本主要通過檢測tomcat對應的工程鏈接是否已經正常啓動來重啓tomcat。
有失敗重置機制(這裏設置了十次),若連續請求10次都失敗了
先判斷tomcat是否已經啓動,若啓動了,則關閉tomcat再重啓tomcat。否則直接啓動 tomcat。





#!/bin/sh

# 鏈接
URL="http://localhost:8080/"
# tomcat目錄
TOMCAT_HOME=/usr/soft/apache-tomcat-8.5.20
# 關閉tomcat命令的路徑
CLOSE_TOMCAT=${TOMCAT_HOME}/bin/shutdown.bat
# 啓動tomcat命令的路徑
START_TOMCAT=${TOMCAT_HOME}/bin/startup.bat
# tomcat緩存目錄
TOMCAT_CACHE=${TOMCAT_HOME}/work
# 日誌文件的路徑
LOG_PATH=${TOMCAT_HOME}/check.log
status=0

cd $TOMCAT_HOME
date +%F" "%H:%M:%S
function checkFuc(){
	for i in {1..10}
	do
		echo $i
		status=$(curl -s -o /dev/null -m 10 --coct-timeout 10 URL -w %{http_code})
		if [ $status -eq 200];then
			break
		else
			if [$i -eq 10];then
				$CLOSE_TOMCAT
				sleep 3
				rm -rf $TOMCAT_CACHE
				$START_TOMCAT
			fi
		fi
	done
	echo $status
	if [ $status -eq 200];then
		echo "tomcat is running OK"
	else
		TomcatPID=$(ps -aux | grep ${TOMCAT_HOME} | grep java | awk '{print $2}')
		if	[ $TomcatPID ];then
			echo "closing tomcat"
			$CLOSE_TOMCAT
			sleep 3
			echo "starting tomcat"
			rm -rf $TOMCAT_CACHE
			$START_TOMCAT
		else
			rm -rf $TOMCAT_CACHE
			$START_TOMCAT
		fi
			
	fi
}
checkFuc()>>$LOG_PATH 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章