使用 bash 的 Tomcat 錯誤檢查器

使用 bash 的 Tomcat 錯誤檢查器

有人能給我一些啟發,指出我正確的方向嗎?

我想在 bash 中建立一個腳本,用於在 Tomcat 應用程式啟動期間檢查日誌中的異常。該腳本應該能夠透過 . 動態檢測新文件的創建inotify

該腳本應不斷檢查日誌目錄中日誌檔案中的新行,並將包含單字Exception:ERROR的行寫入/var/log/errorcheckernotifier.txt

當腳本偵測到這一行時,INFO: Server startup in它應該寫入TOMCAT IS STARTED啟動/var/log/errorcheckernotifier.txt期間偵測到的異常數量。

該腳本不應覆蓋errorcheckernotifier.txt.改為附加它。

我怎麼能保持這個腳本運行並檢測進一步的啟動、計數異常等。

答案1

如果有幫助的話,我可以給你我的 tomcat 初始化腳本的「啟動」部分。

    開始)
        echo -n“正在啟動$FOO_BASE_JM”
        ## 使用 startproc(8) 啟動守護程式。如果失敗
        ## 傳回值由startproc 適當設定。

        如果 ps -efwwwwwwwwwwwwwww | java | grep | grep -q "$FOO_BASE_JM";然後
                echo "進程 $FOO_BASE_JM 已經存在"
                rc_失敗 1
        別的

        LOGLINES=$(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l)

        匯出CATALINA_OPTS
        ########/sbin/startproc $FOO_BIN
        if [ "$(id -un)" = "tomcat" ];然後
         $FOO_BIN 開始 || rc_失敗 1
        別的
         /bin/su tomcat $FOO_BIN 開始 || rc_失敗 1

        echo -n“等待進程出現。”
        重量=0
        process_seen=true
        儘管 ! PS-efwwwwwwwwwwwwwww | java | grep | grep -q "$FOO_BASE_JM";做
                睡覺2
                迴聲-n。
                重量=$(($重量+1))
                如果[“$wt”-gt 30];然後
                        迴音
                        echo "逾時:看不到進程。您應該檢查日誌。"
                        rc_失敗 1
                        process_seen=假
                        休息
        完畢
        如果[“x$process_seen”=“xtrue”];然後
         迴音
         echo -n“等待啟動。”
         重量=0
         儘管 !尾 +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "訊息:伺服器啟動";做
                睡覺2
                迴聲-n。
                重量=$(($重量+1))
                如果[“$wt”-gt 30];然後
                        迴音
                        echo "逾時:在日誌中找不到伺服器啟動成功的跡象,請檢查。"
                        rc_失敗 1
                        休息
         完畢
         尾 +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: 伺服器啟動" && tail +$LOGLINES /opt/$FO
O_BASE_JM/logs/catalina.out | O_BASE_JM/logs/catalina.out grep“資訊:伺服器啟動”

        fi # 如果沒有進程存在

        # 記住狀態並保持詳細
        rc_status -v
        ;;

作為替代方案,我可以建議使用像Nagios 這樣的監控工具,將其日誌監控插件之一指向catalina.out 檔案(或您登入的任何位置),並蒐索新的錯誤字串或您感興趣的任何內容。在我們的 Oracle 資料庫上完美運作。

相關內容