首先查看日志格式是这样的。
192.168.56.44 - - [03/Jul/2019:02:35:59 +0000] "POST /api/tcp/route?a=8 HTTP/1.0" 200 112 "-" "|app_ios|v:1.5.1|s:88e2b7432844979423e7765fa162af04|u:12943|f:tcp" "101.84.44.224" 0.010 0.010
嗯 看来用了proxy,好吧,幸好后面有外网IP地址。我就唰唰的写了以下命令:
awk -F"\"" '{print $8}' api-plp-access_20191120.log | uniq -c | sort -n -r -k 1| more
思路:先用双引号"切割,IP所在位置在第8列打印输出。然后去重统计,最后按照数字比对、降序,按照第一列排序。
出现结果如下:
![](https://img.haomeiwen.com/i16586794/8087618742f42e56.png)
嗯?假的吧,uniq -c 我明明去重并统计了?怎么还出现这么多127.0.0.1?况且900M的日志文件怎么可能只有这么点统计数。翻手册。
![](https://img.haomeiwen.com/i16586794/80a1fc91f557e22e.png)
uniq 命令读取由 InFile 参数指定的标准输入或文件。该命令首先比较相邻的行,然后除去第二行和该行的后续副本
哦。失误,根据这行的理解uniq -c配合sort使用。sort之后,相同的ip会相邻起来。
好吧,修改命令:
awk -F"\"" '{print $8}' api-plp-access_20191120.log | sort| uniq -c | sort -n -r -k 1| more
![](https://img.haomeiwen.com/i16586794/be178dc79ffa570f.png)
嗯。这才符合。
网友评论