统计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