監控每隔5分鐘檢測一次日誌文件中是否有某個關鍵字

今有需求:需要監控每隔五分鐘檢測一次日誌文件是否出自按某個關鍵字。利用過濾全部的日誌信息 雖然可以過濾出來關鍵字告警,但是修復後,依然還是會報警,存在侷限性,所以需要使用以下辦法來實現需求。

實現思路比較簡單,循環獲取5分鐘內的時間戳,然後從日誌文件中grep這個時間戳即可。代碼如下:

#!/bin/sh
LOG_FILE=xxx  //日誌文件
KEY_WORDS="xxx" //過濾的關鍵字
cat /dev/null > tmp.txt
for (( i = 5; i >=0; i-- )) ; do
     grep "$(date +"%Y-%m-%d %H:%M" -d "-$i  min")" $LOG_FILE >> tmp.txt //循環獲取五分鐘內的時間戳
done
 //判斷是否可以獲取關鍵字,無獲取關鍵字則輸出爲0 獲取到了關鍵字則輸出爲1
if [ -z "`cat tmp.txt | grep "$KEY_WORDS"`" ]; then
 echo "0"
else
 echo "1"
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章