查询访问最频繁的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

嗯。这才符合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。