luobo2ni 发表于 2018-11-27 11:58:14

统计apache日志所有ip的访问次数和流量

#!/usr/bin/env python
"""
USAGE:
logfilename
"""
import sys
def dictify_logline(line):
      split_line = line.split()
      return { 'remote_host':split_line,
               'status':split_line,
               'bytes_sent':split_line,
                }
def generate_log_report(logfile):
      report_dict = {}
      for line in logfile:
                line_dict = dictify_logline(line)
                #print line_dict
                try:
                     bytes_sent = int(line_dict['bytes_sent'])
                except ValueError:
                     continue
                report_dict.setdefault(line_dict['remote_host'],[]).append(bytes_sent)
      return report_dict
if __name__=="__main__":
      if not len(sys.argv)>1:
         print __doc__
         sys.exit(1)
      infile_name = sys.argv
      try:
         infile = open(infile_name,'r')
      except IOError:
         print "You must specify a valid file to parse"
         print __doc__
         sys.exit(1)
      log_report = generate_log_report(infile)
      #print log_report
      bytes=0
      for host in log_report.keys():
                for byte in log_report:
                        bytes=bytes+byte
                print host,len(log_report),bytes
      infile.close()



页: [1]
查看完整版本: 统计apache日志所有ip的访问次数和流量