国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python寫的一個squid訪問日志分析的小程序

2020-02-23 05:47:57
字體:
來源:轉載
供稿:網友

這兩周組里面幾位想學習python,于是我們就創建了一個這樣的環境和氛圍來給大家學習。

昨天在群里,貼了一個需求,就是統計squid訪問日志中ip 訪問數和url的訪問數并排序,不少同學都大體實現了相應的功能,我把我簡單實現的貼出來,歡迎拍磚:

日志格式如下:

代碼如下:
%ts.%03tu %6tr %{X-Forwarded-For}>h %Ss/%03Hs %<st %rm %ru  %un %Sh/%<A %mt "%{Referer}>h" "%{User-Agent}>h" %{Cookie}>h

代碼如下:
1372776321.285      0 100.64.19.225 TCP_HIT/200 8560 GET http://img1.jb51.net/games/0908/19/1549401_3_80x100.jpg  - NONE/- image/jpeg "http://www.jb51.net/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727)" pcsuv=0;%20pcuvdata=lastAccessTime=1372776317582;%20u4ad=33480hn;%20c=14arynt;%20uf=1372776310453

代碼如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from optparse import OptionParser
'''
    僅僅是一個關于日志文件的測試,統計處access.log 的ip數目
'''
try:
    f = open('/data/proclog/log/squid/access.log')
except IOError,e:
    print "can't open the file:%s" %(e)
 
def log_report(field):
    '''
        return the field of the access log
    '''
    if field == "ip":
        return  [line.split()[2] for line in f]
    if field == "url":
        return  [line.split()[6] for line in f]
def log_count(field):
    '''
        return a dict of like {field:number}
    '''
    fields2 = {}
    fields = log_report(field)
    for field_tmp in fields:
        if field_tmp in fields2:
            fields2[field_tmp] += 1
        else:
            fields2[field_tmp] = 1
    return fields2
def log_sort(field,number = 10 ,reverse = True):
    '''
        print the sorted fields to output
    '''
    for v in sorted(log_count(field).iteritems(),key = lambda x:x[1] , reverse = reverse )[0:int(number)]:
        print v[1],v[0]
if __name__ == "__main__":
    parser =OptionParser(usage="%prog [-i|-u] [-n num | -r]" ,version = "1.0")
    parser.add_option('-n','--number',dest="number",type=int,default=10,help=" print top line of the ouput")

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安达市| 鸡西市| 岢岚县| 通化市| 济宁市| 太仓市| 喀什市| 马尔康县| 临城县| 文成县| 墨竹工卡县| 大埔区| 卢氏县| 吕梁市| 苏尼特左旗| 临江市| 南部县| 商南县| 苏尼特右旗| 桂东县| 绥德县| 新干县| 临夏市| 柳林县| 丹棱县| 清新县| 夹江县| 新野县| 元氏县| 隆昌县| 仁化县| 根河市| 全椒县| 东乡族自治县| 蒙城县| 建水县| 永登县| 正蓝旗| 轮台县| 远安县| 彭泽县|