python分析nginx日志的ip、url、地位

  


# !/usr/bin/env  python   # _ * _coding: utf-8  _ * _   时间=__author__ “lvnian”      # !/usr/bin  env  python   #,编码:utf - 8   import  MySQLdb  as  mysql   import 系统,操作系统      时间=db  mysql.connect(用户=案?passwd=皒xxxx@2015”, db=癷nt”,主机=?92.168.10.12”),#数据库连接信息   db.autocommit(真正的)   时间=cur  db.cursor ()   cur.execute (set  names  utf8)      dict_list =, {}   with 开放(access.log), as  logfin:   ,,,for  line 拷贝logfin:   ,,,,,,,arr =, line.split (', ')   ,,,,,,,#,获取ip  url 和地位   ,,,,,,,ip =, arr [0]   ,,,,,,,url =, arr [6]   ,,,,,,,status =, arr [8]   ,,,,,,,#,ip  url 当关键和地位,每次统计+ 1   ,,,,,,,dict_list [(ip、url、状态)],=,dict_list.get ((ip、url、状态),0)+ 1   ,,,#,转换成列的表   ,,,ip_list =, ((k [0], k [1], [2], v), for  k, v 拷贝dict_list.items ())   ,,,#,按照统计数量排序,排序后保存到数据库。   ,,,for  insert 拷贝排序(ip_list、关键=lambda  x: x[3],反向=True): #如果只想提取前十行的话可以[10]即可。   ,,,,,,,print  insert , #测试用的,可以不要。整个功能是输出一行,然后保存到数据库。   ,,,,,,,sql =,“insert  loginfo  values  (“% s”、“% s”、“% s”、“% s”)”, %,插入   ,,,,,,,print  sql   ,,,,,,,cur.execute (sql)

<强>

use 强度;   show 表;      ,CREATE  TABLE “loginfo”, (   “知识产权”,才能text  DEFAULT 空,   “url”,才能longtext  DEFAULT 空,   “状态”,才能varchar (200), DEFAULT 空,   “count_num”,才能varchar (200), DEFAULT  NULL   );


<强>

mysql>, select  *,得到loginfo  where  count_num 在3,limit  5,;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   |,ip ,,,,,,,,,,,, |, url ,,,,,,,,,,,,,,,,,, |, status  | count_num  |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   |,121.42.0.85 ,,, |,/,,,,,,,,,,,,,,,,,,,,, |, 200,,,, |, 39岁,,,,,,,|   |,121.42.0.37 ,,, |,/,,,,,,,,,,,,,,,,,,,,, |, 403,,,, |, 34岁,,,,,,,|   |,121.42.0.39 ,,, |,/,,,,,,,,,,,,,,,,,,,,, |, 403,,,, |, 34岁,,,,,,,|   | |,222.95.248.220  HTTP://www.baidu.com/  |, 200,,,, |, 26岁,,,,,,,|   |,23.251.49.10 ,, |, www.baidu.com: 443,,,,, |, 400,,,, |, 21岁,,,,,,,|   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   5,rows  set 拷贝;(0.00,sec)      mysql>



# !/usr/bin/env  python   # _ * _coding: utf-8  _ * _   时间=__author__ “lvnian”      # !/usr/bin  env  python   #,编码:utf - 8   import  MySQLdb  as  mysql   import 系统,操作系统,时间   import  datetime      时间=addtime  datetime.datetime.now ()   时间=db  mysql.connect(用户=案?passwd=皒xxx@2015”, db=癷nt”,主机=?92.168.10.12”),#数据库连接信息   db.autocommit(真正的)   时间=cur  db.cursor ()   cur.execute (set  names  utf8)      dict_list =, {}   with 开放(access.log), as  logfin:   ,,,for  line 拷贝logfin:   ,,,,,,,arr =, line.split (', ')   ,,,,,,,#,获取ip  url 和地位   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

python分析nginx日志的ip、url、地位