shell獲取某個時間段的nginx日志內容
小醉90s 2014-04-06 16:40:36 15297 收藏 1
分類專欄: linux
版權
從nginx日志中獲取2014:04:01日 21:30至21:50的日志內容
# cat web.log
192.168.16.105 - - [01/Apr/2014:21:26:21 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:28:22 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:31:36 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:42:14 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:45:22 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:46:32 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:46:54 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:47:03 +0800] "GET / HTTP/1.1" 502 172
192.168.16.105 - - [01/Apr/2014:21:48:31 +0800] "GET / HTTP/1.1" 200 26
192.168.16.105 - - [01/Apr/2014:21:50:08 +0800] "GET / HTTP/1.1" 200 26
192.168.16.105 - - [01/Apr/2014:21:51:21 +0800] "GET / HTTP/1.1" 200 26
192.168.16.105 - - [01/Apr/2014:21:52:48 +0800] "GET / HTTP/1.1" 200 26
方法1:sed
cat web.log | egrep "01/Apr/2014" | sed -n '/21:31:36/,/21:50:08/p'
方法二:awk
cat web.log | egrep "01/Apr/2014" | awk -F':' '$2 = 21 && $3 >= 30 && $3 <= 50'
注意:
1、sed中取的兩個時間點21:31:36與21:50:08必須是日志中實際存在的,用21:30:01與21:50:01獲取不到數據;
2、awk中$3小於等於50,包含了50:01-50:59的日志數據;
————————————————
版權聲明:本文為CSDN博主「小醉90s」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/kelonsen/article/details/23033485