這裏寫自定義目錄標題
Tomcat自啓動腳本配置
通過VIM添加tomcat-monitor.sh腳本
添加下面命令到腳本中
# 獲取tomcat進程ID
TomcatID=$(ps -ef |grep tomcat |grep -w 'org.apache.catalina.startup.Bootstrap'|grep -v 'grep'|awk '{print $2}')
# tomcat啓動程序(這裏注意tomcat實際安裝的路徑)
StartTomcat=/data/tomcat8/bin/startup.sh
TomcatCache=/data/tomcat8/work
#定義要監控的頁面地址
WebUrl=http://192.168.195.10:8080/
#日誌輸
GetPageInfo=/data/monitor/monitorlogs/TomcatMonitor.Info
TomcatMonitorLog=/data/monitor/monitorlogs/TomcatMonitor.log
Monitor()
{
echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $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運行正常,測試頁面正常......"
echo "" > $GetPageInfo # 清空GetPageInfo
else
echo "[error]tomcat頁面出錯,請注意......狀態碼爲$TomcatServiceCode,錯誤日誌已輸出到$GetPageInfo"
echo "[error]頁面訪問出錯,開始重啓tomcat"
kill -9 $TomcatID # 殺掉原tomcat進程
sleep 3 #等待3秒
# rm -rf $TomcatCache # 清理tomcat緩存
$StartTomcat
sleep 300 #等待5分鐘
fi
else
echo "[error]tomcat進程不存在!tomcat開始自動重啓..."
echo "[info]$StartTomcat,請稍候......"
# rm -rf $TomcatCache
$StartTomcat
sleep 300 #等待5分鐘
fi
echo "------------------------------"
}
Monitor >>$TomcatMonitorLog
給文件賦可執行權限
chmod +x tomcat-mon![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200603150405992.png#pic_center)itor.sh
執行腳本文件
./tomcat-monitor.sh
關閉tomcat,通過運行腳本,tomcat可以啓動
添加定時任務
通過命令打開定時任務
crontab -e
添加命令
*/1 * * * * /data/monitor/tomcat-monitor.sh #定義每分鐘檢查tomcat,如果關閉就重啓
運行可能會出現如圖異常
解決辦法
編輯tomcatsetclasspath.sh文件
vim /data/tomcat8/bin/setclasspath.sh
加入以下命令
export JAVA_HOME=/usr/local/apps/jdk1.8/
export JRE_HOME=/usr/local/apps/jdk1.8/jre
一分鐘後查案運行腳本可看到
正常運行情況
Springboot自啓動腳本
操作流程和tomcat自啓動腳本運行類似。
有兩點區別:
Spring boot的執行腳本
```powershell
ProjectName=Security
2 #定義要監控的頁面地址
3 WebUrl=http://192.168.195.10/
4 #文件位置
5 File="luban.jar"
6 SecurityID=$(ps -ef | grep luban.jar | grep -v 'grep' | awk '{ print $2 }')
7 # ${ProjectName}啓動程序(這裏注意項目啓動文件實際存放的路徑)
8 StartSecurity=/data/ssp/ssp-security/start.sh #日誌輸出
9 # StartSecurity=nohup java -Xms1024m -Xmx2048m -jar /data/ssp/ssp-security/luban.jar >> /data/monitor/SecurityMonitorlogs/start.out 2>&1 & #日誌輸出
10 GetPageInfo=/data/monitor/SecurityMonitorlogs/SecurityMonitor.Info
11 SecurityMonitorLog=/data/monitor/SecurityMonitorlogs/SecurityMonitor.log
12 Monitor()
13 {
14 echo "[info]開始監控$ProjectName...[$(date +'%F %H:%M:%S')]"
15 if [ $SecurityID ];then # 這裏判斷項目進程是否存在
16 echo "[info]當前$ProjectName 進程ID爲:$SecurityID,繼續檢測頁面..."
17 # 檢測是否啓動成功(成功的話頁面會返回狀態"200")
18 SecurityServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
19 if [ ${SecurityServiceCode} -eq 200 ];then
20 echo "[info]頁面返回碼爲$SecurityServiceCode,$ProjectName 運行正常,測試頁面正常......"
21 echo "" > $GetPageInfo # 清空GetPageInfo
22 else
23 echo "[error]$WebUrl 頁面出錯,請注意......狀態碼爲$SecurityServiceCode,錯誤日誌已輸出到$GetPageInfo"
24 echo "[error]頁面訪問出錯,開始重啓$ProjectName"
25 kill -9 ${SecurityID} # 殺掉原${ProjectName}進程
26 sleep 3 #等待3秒
27
28 $StartSecurity
29 sleep 300 #等待5分鐘
30 fi
31 else
32 echo "[error]$ProjcetName 進程不存在!開始自動重啓..."
33 echo "[info]$StartSecurity,請稍候......"
34 $StartSecurity
35 sleep 300 #等待5分鐘
36 fi
37 echo '------------------------------'
38 }
39 Monitor >>$SecurityMonitorLog
上面命令中引用了一個start.sh啓動項目的腳本
start.sh腳本
source /etc/profile
nohup java -Xms1024m -Xmx2048m -jar /data/ssp/ssp-security/luban.jar >> /data/monitor/SecurityMonitorlogs/start.out 2>&1 &
注:source/etc/profile命令必須添加,否則可能會報異常
nohup: failed to run command ‘java’: No such file or directory
參考連接https://blog.csdn.net/lixld/article/details/88054563
問題交流羣,不定期分享各種技術文檔:
QQ羣號:464512055
羣二維碼:
這是一個神器的二維碼,掃描之後你會少掉一塊錢。