中间件

统计Nginx访问量最高的IP

2019-10-29  本文已影响0人  KN郑某某

日志格式

文件名称是 nginx_access.log

106.38.241.73 - - [29/Oct/2019:03:51:15 +0800] "GET /web/notice/20160524/568.html HTTP/1.1" 200 23333 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
106.38.241.73 - - [29/Oct/2019:03:51:44 +0800] "GET /web/notice/20180704/1465.html HTTP/1.1" 200 25232 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
183.136.190.62 - - [29/Oct/2019:03:52:06 +0800] "GET / HTTP/1.1" 200 4535 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
106.38.241.73 - - [29/Oct/2019:03:52:10 +0800] "GET /web/notice/20160926/809.html HTTP/1.1" 200 31855 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"

执行命令

$ awk '{print $1}' nginx_access.log | sort | uniq -c | sort -nr -k1 | head -n 100

命令解释:

awk '{print $1}' nginx_access.log

获取 nginx_access.log第一列,就是 IP

sort

第一个sort,IP 按照字母序正序排列,这是一个归类过程,便于下面命令的执行

uniq -c

按照相同项归类,遇到不同的项就生成新类别,所以需要前面的sort。最终生成的格式如下是 数量 IP的格式,如: 3 106.38.241.73

sort -k1 -nr

根据第一列排序(k1),按照数字序(-n)逆序(-r)排。

head -n 100

从头开始输出结果,输出前面的100行,类似的命令还有tail

上一篇下一篇

猜你喜欢

热点阅读