最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年09月17日 11:55:52   作者:鄉(xiāng)村運維  
這篇文章主要介紹了python寫的一個分析squid訪問日志的小程序,本文實現(xiàn)的目標是統(tǒng)計access.log中的ip數(shù)目,需要的朋友可以參考下

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

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

日志格式如下:

復制代碼 代碼如下:

%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://m.fzitv.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
'''
    僅僅是一個關于日志文件的測試,統(tǒng)計處access.log 的ip數(shù)目
'''
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")
    parser.add_option('-i','--ip',dest="ip",action = "store_true",help="print ip information of access log")
    parser.add_option('-u','--url',dest="url",action = "store_true",help="print url information of access log")
    parser.add_option('-r','--reverse',action = "store_true",dest="reverse",help="reverse output ")
    (options,args) = parser.parse_args()
 
    if len(sys.argv) < 2:
        parser.print_help()
    if options.ip and options.url:
         parser.error(' -i and -u  can not be execute at the same time ')
    if options.ip :
        log_sort("ip", options.number , True and options.reverse  or False)
    if options.url:
        log_sort("url", options.number , True and  options.reverse or False)
 
    f.close()

效果如下:

相關文章

  • 用Python生成N層的楊輝三角的實現(xiàn)方法

    用Python生成N層的楊輝三角的實現(xiàn)方法

    這篇文章主要介紹了用Python生成N層的楊輝三角的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python文件操作之合并文本文件內容示例代碼

    Python文件操作之合并文本文件內容示例代碼

    眾所周知Python文件處理操作方便快捷,下面這篇文章主要給大家介紹了關于Python文件操作之合并文本文件內容的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-09-09
  • Python機器學習庫之Scikit-learn基本用法詳解

    Python機器學習庫之Scikit-learn基本用法詳解

    Scikit-learn?是?Python?中最著名的機器學習庫之一,它提供了大量實用的機器學習算法以及相關的工具,可以方便我們進行數(shù)據(jù)挖掘和數(shù)據(jù)分析,在這篇文章中,我們將介紹?Scikit-learn?的基本使用,包括如何導入數(shù)據(jù)、預處理數(shù)據(jù)、選擇和訓練模型,以及評估模型的性能
    2023-07-07
  • python調用帶空格的windows?cmd命令問題及連續(xù)運行多個命令方式

    python調用帶空格的windows?cmd命令問題及連續(xù)運行多個命令方式

    這篇文章主要介紹了python調用帶空格的windows?cmd命令問題及連續(xù)運行多個命令方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用python處理題庫表格并轉化為word形式的實現(xiàn)

    使用python處理題庫表格并轉化為word形式的實現(xiàn)

    這篇文章主要介紹了使用python處理題庫表格并轉化為word形式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • python處理json文件的四個常用函數(shù)

    python處理json文件的四個常用函數(shù)

    這篇文章主要介紹了python處理json文件的四個常用函數(shù),主要包括json.load()和json.dump()及json.loads()還有json.dumps(),需要的朋友可以參考一下
    2022-07-07
  • python圖形開發(fā)GUI庫pyqt5的基本使用方法詳解

    python圖形開發(fā)GUI庫pyqt5的基本使用方法詳解

    這篇文章主要介紹了python圖形開發(fā)GUI庫pyqt5的基本使用方法詳解,需要的朋友可以參考下
    2020-02-02
  • Python實現(xiàn)內網(wǎng)穿透和端口轉發(fā)代理詳解

    Python實現(xiàn)內網(wǎng)穿透和端口轉發(fā)代理詳解

    這篇文章主要為大家介紹了Python實現(xiàn)內網(wǎng)穿透和端口轉發(fā)代理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 解決django接口無法通過ip進行訪問的問題

    解決django接口無法通過ip進行訪問的問題

    這篇文章主要介紹了解決django接口無法通過ip進行訪問的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 解決pyecharts在jupyter notebook中使用報錯問題

    解決pyecharts在jupyter notebook中使用報錯問題

    這篇文章主要介紹了解決pyecharts在jupyter notebook中使用報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

安国市| 宁明县| 英德市| 新邵县| 贺兰县| 依兰县| 镇江市| 高安市| 南安市| 于都县| 托克托县| 固始县| 旬邑县| 武邑县| 临潭县| 延长县| 民勤县| 松潘县| 林州市| 桦川县| 大石桥市| 疏附县| 容城县| 嵊泗县| 河间市| 噶尔县| 苏尼特右旗| 宣武区| 岳普湖县| 利辛县| 六盘水市| 灵璧县| 西林县| 伊通| 通道| 鄯善县| 延吉市| 溧水县| 丹阳市| 广平县| 屏山县|