分析nginx日志脚本之python
为了对每个月的切割过的30个日志文件统计出访问最多的ip地址进行排序,整理了下面的脚本,主要思路是处理每一个日志文件的ip排序,最后进行字典合并,计算出月ip排序。
#!/usr/bin/env python import os
import sys
import commands
import re ipsort = {}
def IpSort(logfile):
ipadd = r'\.'.join([r'\d{1,3}']*4)
re_ip = re.compile(ipadd)
for line in open(logfile):
match = re_ip.match(line)
if match:
ip = match.group( )
ipsort[ip] = ipsort.get(ip, 0) + 1
#return ipsort
#logfile=ipsort
#print logfile,"\n",ipsort,"\n"
#ipnum[logfile] = ipsort
def ReadFile(): filedir = raw_input("Enter the path>").strip()
filelist = os.listdir(filedir)
filenum = 0
for line in filelist:
if line[-4:] == '.txt':
IpSort(line)
#s,r = commands.getstatusoutput("cat %s/%s |awk wc -l" %(filedir,line)) def mergeipnum(*ipns):
_keys = set(sum([ipn.keys() for ipn in ipns],[]))
#print _keys,
_ipnum_dic = {}
for _key in _keys:
#pass
#print _key
_ipnum_dic[_key] = sum([ipn.get(_key,0) for ipn in ipns]) print _ipnum_dic, ReadFile()
mergeipnum(ipsort)
分析nginx日志脚本之python的更多相关文章
- 一天,python搞个分析NGINX日志的脚本
		
准备给ZABBIX用的. 统计接口访问字次,平均响应时间,4XX,5XX次数 以后可以再改进.. #!/usr/bin/env python # coding: utf-8 ############# ...
 - 利用python分析nginx日志
		
最近在学习python,写了个脚本分析nginx日志,练练手.写得比较粗糙,但基本功能可以实现. 脚本功能:查找出当天访问次数前十位的IP,并获取该IP来源,并将分析结果发送邮件到指定邮箱. 实现前两 ...
 - shell脚本分析nginx日志
		
shell脚本分析nginx日志: name=`awk -F ',' '{print $13":"$32}' $file | awk -F ':' '{print $4}'`ech ...
 - 烂泥:利用awstats分析nginx日志
		
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割 ...
 - hive分析nginx日志之UDF清洗数据
		
hive分析nginx日志一:http://www.cnblogs.com/wcwen1990/p/7066230.html hive分析nginx日志二:http://www.cnblogs.com ...
 - 使用Docker快速部署ELK分析Nginx日志实践(二)
		
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
 - elk实战分析nginx日志文档
		
elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...
 - elk平台分析nginx日志的基本搭建
		
一.elk套件介绍 ELK 由 ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.官方网站: https://www.elastic.co/products El ...
 - awstat分析nginx日志
		
awstat分析nginx日志 http://lxw66.blog.51cto.com/5547576/1323712 server{ listen ; server_name localhost; ...
 
随机推荐
- mybatis_mysql
			
SELECT round(avg(c.AVG_DELAY_TIME)) as AVG_DELAY FROM `result_road_saturation_day` a LEFT JOIN info_ ...
 - 【PHP】session失效时间
			
最近用到php中session时,忽然发现php中的session有点让人头疼啊,要设置一个严格的特定时间内过期的session还真不太容易!后来在网上查询时,发现这个问题还真是有点普遍,网上也有关于 ...
 - 【转】Linux C 网络编程——TCP套接口编程
			
地址:http://blog.csdn.net/matrix_laboratory/article/details/13669211 2. socket() <span style=" ...
 - xstream 解析xml报文
			
一.xml一种格式的数据转换为对象 pom.xml引入 <!--javaBean和XML的双向转换--> <dependency> <groupId>com.tho ...
 - Java容器深入浅出之数组
			
写在前面 关于Java的学习,特别是对于非计算机专业的同学来说,我总是主张从实践中来,到实践中去的学习方法.Java本身是一门应用性特别强的高级编程语言,因此如果能在基于实际开发的经验基础上,对Jav ...
 - 【Linux笔记】GRUB配置与应用,启动故障分析解决。
			
一.GRUB启动位置 GRUB是现今大多数Linux系统采用的自举程序,这里先来看一下Linux的程序顺序: 执行顺序 动作 固件Firmware(CMOS/BIOS) → POST(Pwer ...
 - CodeChef KnightMov
			
码死了...考试的时候基本上是写一会儿思考一会儿人生....考完了调了调...最后400行+....不应该这么长的....以后重写一下再补题解..... 也许这就是蒟蒻吧.jpg 安利cstdio博客 ...
 - 【Jmeter】集合点Synchronizing Timer
			
集合点: 简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,每到输入用户名和密码登录时,所有的虚拟 ...
 - Xor Sum HDU - 4825(01字典序板题)
			
#include <iostream> #include <cstdio> #include <sstream> #include <cstring> ...
 - 创建Qt项目
			
创建Qt项目 1 创建Qt项目 2.1 使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜单栏 [文件]-[新建文件或项目]菜单项 弹出New Project对 ...