获取nginx日志访问前10名(附python做法)

获取日志访问量基本作为合格的运维必须会的,这里我们讨论下shell和python实现方式

shell实现方式

shell实现较为简单,只需要一条命令即可,运用awk、sort、uniq即可
cat xxxx.log |awk ‘{print $1}’ | sort | uniq -c | sort -nr |head -10

python实现

1
2
3
4
5
6
7
8
9
#coding=utf8
from collections import Counter
ip_list=[ ]
with open('xxx.log','r') as f_log:
for i in f_log.readlines():
ip_list.append(i.split(" ")[0])
ip_list = sorted(dict(Counter(ip_list)).items(), key=lambda x: x[1], reverse=True)[0:10]
for i in ip_list:
print i[0],'访问次数为:%s' %i[1]

Comments

2017-03-01