Python小程式

來源:互聯網
上載者:User

標籤:strong   logs   except   內容   代碼   usr   utf-8   rate   檔案   

需求:統計每分鐘有多少行;及23:59有多少行,00:00有多少行,檔案過大每個檔案2G,共5個檔案

檔案:access_log.2017-11-06-00_00_00檔案內容如下:

21.123.42.233 - - [05/Nov/2017:23:59:59 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 11637 1388               21.123.42.233 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 7223 150                  21.123.42.235 - - [05/Nov/2017:23:59:59 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 185121 135                           21.123.42.235 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 7998 330                        21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 29833 1388               21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 20608 150                 21.123.42.232 - - [05/Nov/2017:23:59:59 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 252234 139                           21.123.42.232 - - [05/Nov/2017:23:59:59 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 230661 135                           21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 33536 1388               21.123.42.233 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 138429 139                           21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 24368 150                 21.123.42.233 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 7075 330                        21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 23221 330                       21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 19719 330                       21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 85528 135                            21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 22324 1388               21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 15338 150                 21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 20461 1388               21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 24474 330                       21.123.42.235 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 10589 1388               21.123.42.232 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 24163 150                 21.123.42.235 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 4449 150                  21.123.42.236 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 345698 139                           21.123.42.236 - - [06/Nov/2017:00:00:00 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 19886 330                       21.123.42.233 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 5096 150                     21.123.42.232 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 5755 150                     21.123.42.235 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 7182 330                           21.123.42.235 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 4752 150                     21.123.42.233 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 101802 139                              21.123.42.232 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 7666 330                           21.123.42.236 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 11735 1388                  21.123.42.232 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 5376 150                     21.123.42.234 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 19922 1388                  21.123.42.236 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 8779 1388                   21.123.42.235 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 99890 135                               21.123.42.234 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 5242 150                     21.123.42.236 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME: 16658 1388                  21.123.42.233 - - [06/Nov/2017:04:02:04 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 4977 150      21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 5559 321.123.42.232 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 5176 321.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME:21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME:21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME:21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 21.123.42.235 - - [06/Nov/2017:12:12:31 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 136333 135 21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 8429 321.123.42.233 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME:21.123.42.236 - - [06/Nov/2017:12:12:31 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 147556 135 21.123.42.233 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 21.123.42.235 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 119417 135 21.123.42.233 - - [06/Nov/2017:12:12:31 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 194970 135 21.123.42.235 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 76006 135  21.123.42.236 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 5892 321.123.42.233 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 4904 321.123.42.235 - - [06/Nov/2017:12:12:31 +0800] "POST /IPPSRemote/remoting/RemoteIps35963Invoker HTTP/1.1" 200 TIME: 297515 369 21.123.42.236 - - [06/Nov/2017:12:12:31 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 402771 135 21.123.42.233 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME:21.123.42.234 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 135743 135 21.123.42.235 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 5853 321.123.42.235 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1SignMsgInvoker HTTP/1.1" 200 TIME: 14536 21.123.42.233 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCFCAP1VerifySignMsgInvoker HTTP/1.1" 200 TIME: 21.123.42.233 - - [06/Nov/2017:12:12:32 +0800] "POST /IPPSRemote/remoting/RemoteCfcaQryCert4softCertInvoker HTTP/1.1" 200 TIME:21.123.42.233 - - [06/Nov/2017:12:12:31 +0800] "POST /IPPSRemote/remoting/RemoteIps35062Invoker HTTP/1.1" 200 TIME: 186202 135  

Python代碼如下所示:

#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = ‘40kuai‘li = [0 for i in range(1440)]with open(‘/root/access_log.2017-11-06-00_00_00‘) as file:    for line in file:        hour = line.split(‘:‘)[1]        mins = line.split(‘:‘)[2]        haha =  int(hour)*60+int(mins)        li[haha] +=1for index,i in enumerate(li):    try:        a,b=divmod(index,60)        print ‘%s:%s‘ % (a, b), i    except ZeroDivisionError as e:        print ‘00:00‘, i

又用Shell編了一個簡單Shell指令碼,指令碼如下:

#!/bin/bashfor i in {00..23} ;do  for j in {00..59} ;do     echo $i:$j  `awk ‘{print $4}‘ /root/access_log.2017-11-06-00_00_00|awk -F ‘:‘ ‘{print $2$3}‘|grep $i$j|wc -l`>>/lines.txt  donedone

兩個指令碼的效率差別很大。。。哪位大神可以幫忙看看能不能最佳化一下Shell指令碼,Shell主要問題為迴圈讀檔案進行過濾

 

Python小程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.