1. 程式人生 > >監控每隔5分鐘檢測一次日誌文件中是否有某個關鍵字

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

grep 實現 報警 one bin 循環 過濾 xxx key

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

實現思路比較簡單,循環獲取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

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