Tomcat和Springboot自啓動腳本

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,如果關閉就重啓

運行可能會出現如圖異常
Alt
解決辦法
編輯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

Alt
一分鐘後查案運行腳本可看到
Alt
正常運行情況
Alt

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

羣二維碼:

Alt

這是一個神器的二維碼,掃描之後你會少掉一塊錢。
Alt

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