1. 程式人生 > 實用技巧 >一招搞定錯誤日誌監控

一招搞定錯誤日誌監控

今日主題:使用Shell 指令碼快速定位專案工程的錯誤日誌

在工作中,我們會發現,隨著需求的不斷迭代,專案系統變得越發的複雜,一個專案系統裡需要同時部署N個專案工程。

如何快速的去檢查當前所有專案工程的日誌是否有報錯就成了一個棘手的問題。

面對這個問題,我的選擇是使用Shell 指令碼來實現專案工程的錯誤日誌查詢與定位。

以下內容是Shell 指令碼的實現內容,每一行都有對應的註釋,幫助理解。

 1root@l-test bin # more check_log.sh #檢查一個目錄下所有指定日誌檔案中的報錯
 2
 3日誌指令碼
 4#!/usr/bin/env bash #是對shell的宣告
5 6#定義一個變數,用於指定掃描日誌的目錄 7base="/home/project" 8 9#shell 中無限迴圈定義 10while [[ 1 ]]; do 11 12#for 迴圈開始遍歷目錄下的檔案,過濾掉default目錄 13 for name in `ls $base | grep -vE "default"`; 14 15#開始執行 16 do 17 18#輸出目錄路徑 19 echo $base/$name 20#判斷是否是目錄 21 if [[ -d $base/$name ]]; then 22 23# 獲取catalina.out 檔案中報Exception|ERROR的日誌,過濾掉DEBUG|skywalking|10.8.0.37:8800這三類資訊
24 result=`grep -C10 $base/$name/logs/catalina.out | grep -vE "DEBUG|skywalking|10.8.0.37:8800" | grep -C5 -E "Exception|ERROR"` 25 26#if 判斷如果$result為空 27 if [[ -z "$result" ]]; then 28#繼續 29continue; 30 31#if 結束符 32 fi 33 34#帶顏色的輸出一行資訊,說明是什麼目錄下有報錯 35 echo -e "
\n\033[find Exception in $name\033[0m\n\nExcpetion:\n\n$result" 36#if 結束符 37 fi 38#do 結束符 39 done 40 41#輸出休息一分鐘 42 echo -e "sleep 60 seconds\n" 43#等待一分鐘 44 sleep 60s 45#do 結束符 46done

歡迎關注【無量測試之道】公眾號,回覆【領取資源】,
Python程式設計學習資源乾貨、
Python+Appium框架APP的UI自動化、
Python+Selenium框架Web的UI自動化、
Python+Unittest框架API自動化、

資源和程式碼 免費送啦~
文章下方有公眾號二維碼,可直接微信掃一掃關注即可。

備註:我的個人公眾號已正式開通,致力於測試技術的分享,包含:大資料測試、功能測試,測試開發,API介面自動化、測試運維、UI自動化測試等,微信搜尋公眾號:“無量測試之道”,或掃描下方二維碼:

新增關注,讓我們一起共同成長!