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

python實現(xiàn)的分析并統(tǒng)計nginx日志數(shù)據(jù)功能示例

 更新時間:2019年12月21日 12:57:34   作者:hnr1017  
這篇文章主要介紹了python實現(xiàn)的分析并統(tǒng)計nginx日志數(shù)據(jù)功能,結(jié)合實例形式分析了Python針對nginx日志ip、訪問url、狀態(tài)等數(shù)據(jù)的相關(guān)讀取、解析操作技巧,需要的朋友可以參考下

本文實例講述了python實現(xiàn)的分析并統(tǒng)計nginx日志數(shù)據(jù)功能。分享給大家供大家參考,具體如下:

利用python腳本分析nginx日志內(nèi)容,默認統(tǒng)計ip、訪問url、狀態(tài),可以通過修改腳本統(tǒng)計分析其他字段。

一、腳本運行方式

python count_log.py -f med.xxxx.com.access.log

二、腳本內(nèi)容

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
1.分析日志,每行日志按空格切分,取出需要統(tǒng)計的相應字段,作為字典的key,遍歷相加
2.使用到字典的get方法,通過定義默認值,避免miss key的錯誤
3.使用列表解析表達式
4.使用sorted函數(shù)排序列表
5.使用argparse傳入?yún)?shù)
6.nginx日志格式:
log_format     access_log
  '$remote_addr - $remote_user [$time_local] $request '
  '"$status" $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$request_time"' '"$upstream_addr"' '"$upstream_response_time"';
7.日志內(nèi)容:
222.xx.xxx.15 - - [07/Dec/2016:00:03:27 +0800] GET /app/xxx/xxx.apk HTTP/1.0 "304" 0 "-" "Mozilla/5.0 Gecko/20100115 Firefox/3.6" "0.055""-""-"
8.腳本運行結(jié)果:
('106.xx.xx.46', '/gateway/xxx/user/mxxxxx/submitSelfTestOfSingleQuestion', '"200"', 299)
('182.1xx.xx.83', '/', '"200"', 185)
('222.xx.1xx.15', '/', '"200"', 152)
('125.xx.2xx.58', '/', '"200"', 145)
"""
import argparse
def count_log(filename, num):
  try:
    with open(filename) as f:
      dic = {}
      for l in f:
        if not l == '\n': # 判斷空白行
          arr = l.split(' ')
          ip = arr[0]
          url = arr[6]
          status = arr[8]
          # 字典的key是有多個元素構(gòu)成的元組
          # 字典的get方法,對取的key的值加1,第一次循環(huán)時由于字典為空指定的key不存在返回默認值0,因此讀第一行日志時,統(tǒng)計結(jié)果為1
          dic[(ip, url, status)] = dic.get((ip, url, status), 0) + 1
    # 從字典中取出key和value,存在列表中,由于字典的key比較特殊是有多個元素構(gòu)成的元組,通過索引k[#]的方式取出key的每個元素
    dic_list = [(k[0], k[1], k[2], v) for k, v in dic.items()]
    for k in sorted(dic_list, key=lambda x: x[3], reverse=True)[:num]:
      print(k)
  except Exception as e:
    print("open file error:", e)
if __name__ == '__main__':
  parser = argparse.ArgumentParser(description="傳入日志文件")
  # 定義必須傳入日志文件,使用格式-f filename
  parser.add_argument('-f', action='store', dest='filename', required=True)
  # 通過-n傳入數(shù)值,取出最多的幾行,默認取出前10
  parser.add_argument('-n', action='store', dest='num', type=int, required=False, default=10)
  given_args = parser.parse_args()
  filename = given_args.filename
  num = given_args.num
  count_log(filename, num)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日志操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關(guān)文章

  • python實現(xiàn)Zabbix-API監(jiān)控

    python實現(xiàn)Zabbix-API監(jiān)控

    這篇文章主要為大家詳細介紹了python實現(xiàn)Zabbix-API監(jiān)控,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 深入解析Python中的集合類型操作符

    深入解析Python中的集合類型操作符

    這篇文章主要介紹了深入解析Python中的集合類型操作符,是Python入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • 利用python實現(xiàn)漢字轉(zhuǎn)拼音的2種方法

    利用python實現(xiàn)漢字轉(zhuǎn)拼音的2種方法

    這篇文章主要給大家介紹了關(guān)于如何利用python實現(xiàn)漢字轉(zhuǎn)拼音的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Python編解碼問題及文本文件處理方法詳解

    Python編解碼問題及文本文件處理方法詳解

    最近在做一個項目,因為文本處理的內(nèi)容是中文,所以不得不面對python中文處理所帶來的種種困惑,這篇文章主要給大家介紹了關(guān)于Python編解碼問題及文本文件處理方法的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 在Django中創(chuàng)建URLconf相關(guān)的通用視圖的方法

    在Django中創(chuàng)建URLconf相關(guān)的通用視圖的方法

    這篇文章主要介紹了在Django中創(chuàng)建URLconf相關(guān)的通用視圖的方法,Django是Python重多人氣框架中最為著名的一個,需要的朋友可以參考下
    2015-07-07
  • 使用Python刪除PDF文件名中的特定文字

    使用Python刪除PDF文件名中的特定文字

    在處理大量PDF文件時,有時候我們可能需要對文件名進行批量修改,例如,我們可能需要將文件名中的特定文字刪除或替換,今天,我將向大家介紹如何使用Python編寫一個簡單的程序,選擇一個文件夾,并刪除文件名中的指定文字,需要的朋友可以參考下
    2023-09-09
  • 教你用python將數(shù)據(jù)寫入Excel文件中

    教你用python將數(shù)據(jù)寫入Excel文件中

    Python作為一種腳本語言相較于shell具有更強大的文件處理能力,下面這篇文章主要給大家介紹了關(guān)于如何用python將數(shù)據(jù)寫入Excel文件中的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • pytorch下大型數(shù)據(jù)集(大型圖片)的導入方式

    pytorch下大型數(shù)據(jù)集(大型圖片)的導入方式

    今天小編就為大家分享一篇pytorch下大型數(shù)據(jù)集(大型圖片)的導入方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python裝飾器常見使用方法分析

    python裝飾器常見使用方法分析

    這篇文章主要介紹了python裝飾器常見使用方法,結(jié)合實例形式分析了Python裝飾器的功能及三種常見的裝飾模式使用技巧,需要的朋友可以參考下
    2019-06-06
  • pandas創(chuàng)建新Dataframe并添加多行的實例

    pandas創(chuàng)建新Dataframe并添加多行的實例

    下面小編就為大家分享一篇pandas創(chuàng)建新Dataframe并添加多行的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論

罗源县| 罗山县| 东源县| 高青县| 莆田市| 靖宇县| 肃北| 塔城市| 宣化县| 读书| 聂荣县| 团风县| 黄梅县| 柳林县| 神木县| 凤翔县| 临泉县| 玛沁县| 阳山县| 临猗县| 万源市| 浮山县| 怀集县| 宿迁市| 抚顺市| 冕宁县| 巴林左旗| 西贡区| 合山市| 磴口县| 涞水县| 金沙县| 湖南省| 琼中| 青浦区| 柞水县| 德清县| 色达县| 通道| 剑阁县| 股票|