查询访问最频繁的IP,uniq -c不生效

首先查看日志格式是这样的。

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列打印输出。然后去重统计,最后按照数字比对、降序,按照第一列排序。

出现结果如下:

image.png

嗯?假的吧,uniq -c 我明明去重并统计了?怎么还出现这么多127.0.0.1?况且900M的日志文件怎么可能只有这么点统计数。翻手册。

image.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
image.png

嗯。这才符合。

你可能感兴趣的:(查询访问最频繁的IP,uniq -c不生效)