#编写一个apache 日志分析脚本(count_patt.py):
#统计每个客户端访问 apache 服务器的次数
#将统计信息通过字典的方式显示出来
#分别统计客户端是 Firefox 和 MSIE 的访问次数
import re #导入正则表达式的模块res
def count_patt(fname, patt): #函数count_patt(), 功能:分析apache访问日志
patt_dict = {} #定义字典,存储结果数据
cpatt = re.compile(patt) #编译正则表达式【这里指: IP或br】
with open(fname, mode="r") as fobj: #以字符类型打开文件,遍历行
for line in fobj.readlines():
m = cpatt.search(line) #使用正则cpatt匹配line中的字符
if m: #当行line中正则匹配成功时
key = m.group() #获取在行line中匹配到的内容
#【统计数量】给字典添加元素,key存在则返回对应的value,不存在则返回0
patt_dict[key] = patt_dict.get(key, 0) + 1
# if key not in patt_dict:
# patt_dict[key] = 1
# else:
# patt_dict[key] += 1
return patt_dict
if __name__ == '__main__':
fname = '/root/access_log' #指定文件名
ip = '(\d+\.){3}\d+' #使用正则匹配出IP地址
br = 'Chrome|MSIE|Firefox' #使用正则匹配出浏览器
result1 = count_patt(fname, ip) #统计文件中的IP地址的个数
result2 = count_patt(fname, br) #统计文件中的浏览器的个数
print(result1) #打印result1【IP地址出现的次数】
print(result2) #打印result2【不同浏览器出现的次数】
python-----28----编写nginx网站日志分析脚本
最新推荐文章于 2024-07-30 09:47:23 发布