使用shell監控指定的頁面是否正常訪問,咱們能夠採起請求某個接口的方式,若是請求錯誤到達必定次數,則發送警告信息到指定手機
環境:CentOS七、Tomcat9shell
1.1 建立個tomcatChenk.sh文件緩存
[root@localhost ~]# vi /usr/sbin/tomcatChenk.sh
1.2 編寫內容tomcat
#!/bin/sh ################################### 基本參數配置 ############################################ # 要監控的頁面地址 reqUrl=http://baidu.com # 服務名稱 serverName=Tomcat # 通知聯繫人電話 phoneNumber=186xxxxxxxx # tomcat啓動路徑 startTomcat=/opt/tomcat/bin/startup.sh # tomcat緩存路徑 tomcatCatalina=/opt/tomcat/work/Catalina # 日誌文件存放路徑 checkLogPath=/opt/tomcat_check_log.txt # 重試請求次數 checkNum=1 # 最大重試請求次數 maxCheckNum=5 # 驗證結果 checkResult=false ################################## 定義函數 ############################################# # 大於 -gt (greater than) # 小於 -lt (less than) # 大於或等於 -ge (greater than or equal) # 小於或等於 -le (less than or equal) # 不相等 -ne (not equal) # 相等 -eq (equal) # 定義一個函數 check(){ echo "$(date +'%F %H:%M:%S') [info]--------------- 開始監控$serverName --------------" while [ true ] do # 1.獲取請求 http://baidu.com 的返回狀態,成功返回爲200 reqCode=`curl -s -w %{http_code} -o $checkLogPath $reqUrl` # 2.驗證請求驗證接口狀態是否正常,正常則退出驗證 if [ $reqCode -ne 200 ]; then echo "$(date +'%F %H:%M:%S') [info]第$checkNum次請求監控接口失敗,返回狀態爲[$reqCode]" else checkResult=true break fi # 獲取Tomcat進程ID(暫未使用,可擴展) # tomcat_id=$(ps -ef | grep tomcat | grep -w 'tomcat' | grep -v 'grep' | awk '{print $2}') # 3.計算執行次數,若是執行次數大於最大重試請求次數則結束這次驗證,不然中止5秒進行下一次驗證 let checkNum=$checkNum+1 if [ $checkNum -gt $maxCheckNum ]; then break else sleep 5 fi done; if [ $checkResult == true ]; then echo "$(date +'%F %H:%M:%S') [info]$serverName服務運行正常" else curl -k -i -d 'tpl_id=199141&mobile=18812345678&tpl_value=%23code%23%3D110911&key=key值' http://v.juhe.cn/sms/send echo "$(date +'%F %H:%M:%S') [info]$serverName服務運行異常,發送預警信息到指定手機" fi echo "$(date +'%F %H:%M:%S') [info]--------------- 結束監控$serverName --------------" } # 調用check函數 check
1.3 給文件分配權限less
[root@localhost opt]# chmod 755 tomcatChenk.sh
添加到指定的定時任務crontab中便可,具體請參照Linux(CentOS)定時任務刪除Tomcat日誌信息便可curl