
正文
Linux小技巧之:两种方法统计访问web网站的前10个IP
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
获得访问前10位的IP地址:
[root@manage:~]# cat /var/log/nginx/access.log | awk '{print $1}'|sort|uniq -c | sort -nr | head -10
10299 10.46.170.7
4 218.202.70.147
1 77.72.83.87
1 5.39.217.107
1 185.197.74.234
1 185.197.74.231
第二种方法:
[root@ELK-chaofeng ~]#cat /var/log/httpd/access_log | awk '{IP[$1]++}END {for (i in IP){ if (IP[i]>=5) {print IP[i],i}}}' | sort -n
5 1.197.190.113
5 80.82.70.187
6 59.36.132.144
8 176.32.33.80
9 124.90.55.182
10 39.98.206.21
64 222.88.236.174
这个例子是我加上了if判断,只有连接数大于5的时候,才会被执行
此外还有一点需要注意:sort中有个-n参数表示以数字进行排序,默认是以每行的第一字段的数值来进行排序的。
也可以格式化显示的整齐一点:
[root@ELK-chaofeng ~]#cat /var/log/httpd/access_log | awk -F' ' '{IP[$1]++}END{for (i in IP) {if (IP[i] >= 5){printf "%-5d %-15s\n",IP[i],i}}}' | sort -rn
136 182.117.204.113
64 222.88.236.174
10 39.98.206.21
9 124.90.55.182
8 176.32.33.80
6 80.82.70.187
6 59.36.132.144
5 1.197.190.113







