排查到一个异常的数据,不知道是怎么产生的,由此想到去看下nginx的access log。这个文件已经有7GB了,所以要看某一天的数据,不太容易,如果能把某1天的数据单独拿出来那就方便了。
第一步、找到8号开始的第1条日志所在的行数1
2[root@xxxxx 2019-08-12]# grep -n "8/Aug/2019" access_log.log | head -1
24016395:113.214.195.251 - - [08/Aug/2019:00:00:00 +0800] "GET /video/play-track/get?video_id=896&duration=10.0&offline=0&cur_time=4927.0&total_time=5208.0 HTTP/1.1"
也就是上面显示的第24016395
行。
第二步、找到9号开始的第1条日志所在的行数1
2[root@xxxxx 2019-08-12]# grep -n "9/Aug/2019" access_log.log | head -1
24568149:117.82.105.175 - - [09/Aug/2019:00:00:00 +0800] "GET /video/play-track/get?video_id=1399&duration=10.0&offline=0&cur_time=1019.0&total_time=2517.0 HTTP/1.1"
也就是上面显示的第24568149
行。
第三步、将上面两个行号之间的内容从日志文件中提取到单独的文件1
sed -n '24016395,24568149p' access_log.log > 20190808.log
注意24568149p
后面的p
。