Linux+crontab 監控tomcat, shutdown後自動重啟tomcat服務__Linux

來源:互聯網
上載者:User
執行步驟:

參考:可以先瞭解crontab:

使用yum安裝crontab服務

 yum install vixie-cron

安裝成功, 看一下常用命令

 /sbin/service crond start //啟動服務

 /sbin/service crond stop //關閉服務

 /sbin/service crond restart //重啟服務

 /sbin/service crond reload //重新載入配置

查看crontab服務狀態:service crond status

手動啟動crontab服務:service crond start

查看crontab服務是否已設定為開機啟動,執行命令:ntsysv

在CentOS系統中加入開機自動啟動: chkconfig --level 35 crond on


1. 建立目錄:  /usr/tomcat_sh/monitor

 

2. 放入shell檔案: /usr/tomcat_sh/monitor.sh

 @指令碼內容:

#!/bin/sh

 

#定義環境變數(要改成自己的jdk相關地址)

 

#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_79/bin

#export JAVA_HOME=/usr/java/jdk1.7.0_79

#export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

#export PATH=$PATH:$JAVA_HOME/bin

 

# 擷取tomcat進程ID(這裡注意tomcat7要改成自己的tomcat目錄名)

TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.85'|grep -v 'grep'|awk '{print $2}') 

# tomcat啟動程式(這裡注意要改成自己tomcat實際安裝的路徑) 

StartTomcat=/usr/local/tomcat/apache-tomcat-7.0.85/bin/startup.sh

TomcatCache=/usr/local/tomcat/apache-tomcat-7.0.85/work

# 自己定義要監控的頁面地址,頁面越簡單越好,比如:頁面上寫個success即可

WebUrl=http://127.0.0.1:8080/index.jsp

# 日誌輸出 (自己定義地址,用於輸出監控日誌和監控報錯日誌)

TomcatMonitorLog=/usr/java/monitor/TomcatMonitor.log 

GetPageInfo=/usr/java/monitor/PageInfo.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啟動成功,測試頁面正常......" 

    else 

        echo "[error]tomcat頁面出錯,請注意......狀態代碼為$TomcatServiceCode,錯誤記錄檔已輸出到$GetPageInfo" 

        echo "[error]頁面訪問出錯,開始重啟tomcat" 

        kill -9 $TomcatID  # 殺掉原tomcat進程 

        #sleep 3 

        #rm -rf $TomcatCache # 清理tomcat緩衝 

        #$StartTomcat 

    fi 

  else 

    echo "[error]tomcat進程不存在!tomcat開始自動重啟..." 

    echo "[info]$StartTomcat,請稍候......" 

    #rm -rf $TomcatCache 

    $StartTomcat 

  fi 

  echo "------------------------------" 

 

Monitor>>$TomcatMonitorLog


3. 授權: chmod a+xmonitor.sh

4. 加入crontab執行: crontab –e

                     */1 * * * */usr/tomcat_sh/monitor.sh     #一分鐘檢測一次

@說明:執行時間 * * * * *

·         minute: 表示分鐘,可以是從0到59之間的任何整數。

·         hour:表示小時,可以是從0到23之間的任何整數。

·         day:表示日期,可以是從1到31之間的任何整數。

·         month:表示月份,可以是從1到12之間的任何整數。

·         week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。

·         command:要執行的命令,可以是系統命令,也可以是自己編寫的指令檔。

在以上各個欄位中,還可以使用以下特殊字元:

·         星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。

·         逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”

·         中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”

·         正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。


5. 重新載入crontab配置: service crond reload 遇到的問題:

問題描述:sh檔案中,在win環境下,用WinSCP編輯,出現如下錯誤:

-bash: ./start.sh:/bin/sh^M: bad interpreter: No such file or directory

 

解決方案:這是win的編碼引起的,可通過如下解決。

1.查看該檔案:vim  monitor.sh

2.查看該錯誤檔案的格式(一般報錯的檔案格式是DOS):  

  :set ff

3.修改該檔案格式為UNIX:

  :set ff=unix

4.再儲存。

  :wq!

  @若有疑問,可以私信給我,可以相互討論。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.