shell腳本監測Linux系統上Tomcat項目運行是否正常,否則重新啟動項目


之前在網上查的腳本運行總是無法正常監測,后面改了一些東西后才正常,現在記錄希望對大家有所幫助。

#!/bin/sh
source /etc/profile
TomcatID=$(ps -ef |grep zhkh_dwn |grep -w 'zhkh_dwn'|grep -v 'grep'|awk '{print $2}')

StartTomcat=/home/tomcat/bin/startup.sh
EndTomcat=/home/tomcat/bin/shutdown.sh
TomcatCache=/home/tomcat/work  

WebUrl=http://172.16.20.112:8082/mypreject/loginController.do?login

GetPageInfo=/root/TomcatMonitor_DW.Info
TomcatMonitorLog=/root/TomcatMonitor_DW.log

Monitor()
{
echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"
	if [  $TomcatID ];then #這里判斷Tomcat進程是否存在
		echo "[info]當前tomcat進程ID為:$TomcatID,繼續檢測頁面..."
		TomcatServiceCode=$(curl -s -o $GetPageInfo --connect-timeout 10 $WebUrl -w %{http_code} --noproxy "*")
		if [  $TomcatServiceCode == 200 ];then
			echo "[info]頁面返回碼為:$TomcatServiceCode,tomcat啟動成功,測試頁面正常"
		else
			echo "[error]tomcat頁面出錯,狀態碼為:$TomcatServiceCode,錯誤日志已輸出到:$GetPageInfo"
			echo "[error] 頁面訪問出錯,開始重啟tomcat"
			kill -9 $TomcatID  # 殺掉原tomcat進程
			sleep 3
			rm -rf $TomcatCache   # 清理tomcat緩存
			$StartTomcat
		fi
	else
		echo "[error]tomcat進程不存在!tomcat開始自動重啟..."
		echo "[info]$StartTomcat,請稍候... "
		rm -rf $TomcatCache
		$StartTomcat
	fi
echo "--------------------------"
}
Monitor>>$TomcatMonitorLog

  修改位置:1.加上環境加載:source /etc/profile

2.if [  $TomcatServiceCode == 200 ];then  中 '-eq' 改成了'=='

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM