使用shell腳本檢測weblogic服務,服務返回非200,則自動重啟。
一 使用背景針對部署在linux系統下的weblogic應用。使用shell腳本監測系統運行狀態,當系統返回非200時,自動重啟服務。二 腳本實現新建checkRunningStatus.sh,并編輯以下代碼。
#!/bin/bashTARGET_ADDR=$1TARGET_STATE=0while true ;do echo `date +"%Y-%m-%d %H:%M:%S"` start access ${TARGET_ADDR} if [ $TARGET_STATE -gt 3 ];then echo `date +"%Y-%m-%d %H:%M:%S"` can not access ${TARGET_ADDR} ,service will reboot! echo "&&&&&& reboot server!" nohup ./startWebLogic.sh > nohup.out 2>&1 & sleep 120 fi HTTP_CODE=`curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" ${TARGET_ADDR}` if [ "${HTTP_CODE}" != 200 ];then echo `date +"%Y-%m-%d %H:%M:%S"` The ${TARGET_STATE} time can not access echo "****** Error: Down!" let TARGET_STATE=TARGET_STATE+1 else echo "###### success" fi sleep 10done
代碼解釋:
傳入變量 TARGET_ADDR,并定義變量TARGET_STATE=0; 循環; 打印當前時間以及變量TARGET_ADDR的值; 判斷變量TARGET_STATE值是否等于3;
1) 等于3,說明連續3次沒有調成功,則重啟系統。重啟的過程中要等待2分鐘,防止沒有重啟完畢又重新訪問系統,此時再3次失敗,則會再會重啟系統。 curl 訪問所要監控的地址,判斷是否返回200,如果不是,則TARGET_STATE+1,否則,打印訪問成功 休眠10秒鐘,即每10s執行一次循環
將checkRunningStatus.sh 變成可執行文件
chmod +x checkRunningStatus.sh
如果是windows編輯后的文件,傳到linux系統,因為操作系統原因,windows下編輯的文件,會有一些看不見的字符,需要通過命令轉換一下,變成unix系統的文件,
bash: ./checkRunningStatus.sh: /bin/bash^M: bad interpreter: 沒有那個文件或目錄
vim checkRunningStatus.sh
:set ff=unix
5. 執行此腳本nohup ./checkRunningStatus.sh
http://127.0.0.1:8080/INTERFACE/services/listServices > running.log
2>&1 &
6.查看效果
tail -f running.log
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170311/119111.html
文章列表