#
# 分析apache访问日志
# 编写一个apche日志分析脚本
# 1. 统计每个客户端访问apache服务器的次数
# 2. 将统计信息通过字典的方式显示出来
# 3. 分别统计客户端是Firefox和MSIE的访问次数
# 4. 分别使用函数式编程和面向对象编程的方式实现
import re
import os
os.chdir('/tmp/python')
print(os.listdir())
def count_patt(fname, patt):
patt_dict = {}
cpatt = re.compile(patt)
with open(fname) as fobj:
for line in fobj:
m = cpatt.search(line)
if m:
# if m is not None:
key = m.group()
patt_dict[key] = patt_dict.get(key, 0) + 1
return patt_dict
if __name__ == '__main__':
fname = 'access_log'
ip = '^(\d+\.){3}\d+' #12.232.22.3
print(count_patt(fname, ip))
# awk '{print $1}' access_log | sort |uniq -c | sort -c
br = 'Firefox | MSIE | Chrome'
print(count_patt(fname, br))
shell = 'bash$|nologin$'