前陣子因為一些狀況,在試著查 nginx 的 access.log,於是剛好想說紀錄一下如何使用時間區間有效率的查 nginx log
OS: 不得不說 [awk](http://www.theunixschool.com/2011/05/awk-read-file-and-split-contents.html)
真的是方便又好用呢 ~
如果沒有特別更改過 nginx access.log
格式的話,應該會如下所示
[09/Jun/2020:16:33:25 107.23.45.127 - - [09/Jun/2020:18:13:37 +0800] "GET /robots.txt
- 查過去兩小時的
access.log
資料
access.log
的第 4 個欄位 > 我們自己定義的Date
awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print Date, $0}' access_log
- 查一個時間區段的
access.log
資料
Date1
>access.log
的第 4 個欄位 <Date2
awk -vDate=`date -d'now-4 hours' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` '$4 > Date && $4 < Date2 {print Date, Date2, $4} access_log'
參考資料:
https://stackoverflow.com/questions/7706095/filter-log-file-entries-based-on-date-range