監控用的
#!/bin/bash
#
#*/2 * * * * sh /home/apache-tomcat-7.0.61/bin/detectionTMT.sh
# 獲取tomcat進程ID(其中[grep -w 'tomcat']代碼中的tomcat需要替換爲你的tomcat文件夾名)
TomcatID=$(ps -ef | grep "org.apache.catalina.startup.Bootstrap" | grep -v 'grep' | awk '{print $2}')
# tomcat啓動程序(這裏注意tomcat實際安裝的路徑)
StartTomcat=./startup.sh
#定義要監控的頁面地址
WebUrl=http://192.169.160.19:8088/mp_topics/jsp/100/to_100.jsp
#日誌輸出
GetPageInfo=/home/apache-tomcat-7.0.61/logs/TomcatMonitor.Info
TomcatMonitorLog=/home/apache-tomcat-7.0.61/logs/TomcatMonitor.log
Monitor()
{
echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"
if [ -n "$TomcatID" ];then #這裏判斷Tomcat進程是否存在
echo "[info]當前tomcat進程ID爲:$TomcatID,繼續檢測頁面..."
# 檢測是否啓動成功(成功的話頁面會返回狀態"200")
TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]頁面返回碼爲$TomcatServiceCode,tomcat啓動成功,測試頁面正常"
else
echo "[error]tomcat頁面出錯,請注意...狀態碼爲$TomcatServiceCode,錯誤日誌已輸出到$GetPageInfo"
echo "[error]頁面訪問出錯,開始重啓tomcat"
kill -9 $TomcatID # 殺掉原tomcat進程
echo "殺掉原tomcat進程$TomcatID"
sleep 3
cd /home/apache-tomcat-7.0.61/bin/ && $StartTomcat
fi
else
echo "[error]tomcat進程不存在!tomcat開始自動重啓..."
echo "[info]$StartTomcat,請稍候..."
cd /home/apache-tomcat-7.0.61/bin/ && $StartTomcat
fi
echo "--------------------------"
}
Monitor>>$TomcatMonitorLog
清理日誌用的
datess=$(date "+%Y-%m-%d %H:%M:%S")
echo "-------------------------------------$datess--------------------------------------" >> /home/apache-tomcat-7.0.88/logs/cleanlogrecording.txt
cleanLog () {
#3天前的日期
today=$(date +%Y%m%d --date="-3 day")
#遍歷這個數組
for file in $files
do
#截取文件的後綴時間
#date2="${file##*.}"
#獲取該文件的創建時間
datatime=$(stat $file|grep Modify|awk '{print $2}'|sed s/-//g)
#如果這個文件的時間小於三天前的時間則刪除這個文件
if [ $datatime -lt $today ]; then
rm -rf $file
fi
done
}
#需要清除的日誌路徑 下方類似
files=/home/apache-tomcat-7.0.88/logs/catalina.*.log
cleanLog $files
files=/home/apache-tomcat-7.0.88/logs/host-manager.*.log
cleanLog $files
files=/home/apache-tomcat-7.0.88/logs/localhost.*.log
cleanLog $files
files=/home/apache-tomcat-7.0.88/logs/localhost_access_log.*.txt
cleanLog $files
files=/home/apache-tomcat-7.0.88/logs/manager.*.log
cleanLog $files
#files=/home/logging/hs/bubble/spring.log.*
#cleanLog $files
cat /dev/null > /home/apache-tomcat-7.0.88/logs/catalina.out
配合linux的crontab定時任務 即可達到效果