文章出處

使用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

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()