六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 35|回复: 0

python 分析 nginx 日志 ip 并存入sqlite 数据库

[复制链接]

升级  49.95%

649

主题

649

主题

649

主题

探花

Rank: 6Rank: 6

积分
1999
 楼主| 发表于 2013-1-26 12:37:46 | 显示全部楼层 |阅读模式
什么也不说,直接上代码
import sqlite3import osimport stringimport fileinputpath_log_nginx = r"E:\xxx-logs\20100904"conn = sqlite3.connect('log.db')c = conn.cursor()#c.execute('''drop table log''')c.execute('''create table log(ip text)''')for file in os.listdir(path_log_nginx):    if not file.endswith(".log"):        print "WARN:%s is not a log file" %(file)        continue    print "INFO:process file %s" %(file)    for line in fileinput.input(os.path.join(path_log_nginx, file)):        if line.startswith("192.168."):            continue;        c.execute("insert into log (ip) values ('%s')" %(line[0:line.find(" - - [")]))    conn.commit()#c.execute("select ip, count(*) c from log group by ip having c > 1000 order by c desc")# We can also close the cursor if we are done with itc.close()#print "done..."
完工后
sqlite3.exe log.db
>select ip, count(*) c from log group by ip having c > 1000 order by c desc;
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表