首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -按group by和count total列出日志和输出中的数据

Python -按group by和count total列出日志和输出中的数据
EN

Stack Overflow用户
提问于 2019-09-04 22:27:20
回答 1查看 59关注 0票数 0

我是python的新手,我有一个/var/ log /messages文件,我正在尝试解决这个问题,而不是仅仅为了查看一个单词在日志中出现了多少次而显示整个日志,例如,我在日志中有多少次使用DHCP或Apache2。

我的代码

代码语言:javascript
复制
#!/usr/bin/env python
from collections import Counter
logfile = open("putty.log", "r")
count = 1
for line in logfile:
    try:
        #print count
        line_split = line.split()
        #print line_split
        message = line_split[3], line_split[4], line_split[5], line_split[6]
        print message
        count = count + 1

    except:
        print "no data"

我的日志看起来像这样

Sep 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1381):n2n : n2n :检查状态5

Sep 4 14:35:44 (无)服务器名称:通知服务::xxxx1045:服务::xexecve_cmd_with_delay(549):cmd 'ipsec status n2n_1‘

Sep 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1392):n2n : ipsec状态生成结果: 000 "n2n_1":1

Sep 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU getNextRemoteEp(230):Nb RemoteEp =0

Sep 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU getNextRemoteEp(235):没有可用的RemoteEp

onSet_INT_xxxxx_Established 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::TR181 14 WRAPPER onSet_INT_xxxxx_Established(1432):xxxx1045: Sep 4 14:35:44(无)服务器名称:信息服务::xxxx1045:服务::TR181 14 WRAPPER onSet_INT_xxxxx_Established(1432):xxxx1045值false

Sep 4 14:35:44 (无)服务器名称:调试服务::xxxx1045:服务::VPN-SMU setTunnelInactiveCause(1993):调用函数'void vpn_smu::NetToNet::setTunnelInactiveCause()‘

Sep 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1604):n2n :隧道'n2n_1‘未建立

Sep 4 14:35:44 (无)服务器名称:调试服务::xxxx1045:服务::VPN-SMU updateRoutes(1863):调用函数'void vpn_smu::NetToNet::updateRoutes(int)‘

Sep 4 14:35:44 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1647):n2n : m_Counter 5!=1,不重新连接重试

Sep 4 14:35:48 (无)服务器名称:调试服务::xxxx1045:服务::VPN-SMU setStatus(SetStatus):调用函数'void vpn_smu::NetToNet::setStatus()‘

Sep 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1381):n2n : n2n :检查状态6

Sep 4 14:35:48 (无)服务器名称:通知服务::xxxx1045:服务::xexecve_cmd_with_delay(549):cmd 'ipsec status n2n_1‘

Sep 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1392):n2n : ipsec status generated result : 000 "n2n_1":

Sep 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU getNextRemoteEp(230):Nb RemoteEp =0

Sep 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU getNextRemoteEp(235):没有可用的RemoteEp

onSet_INT_xxxx_Established 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::TR181 35 WRAPPER onSet_INT_OpenWifi_Established(1432):xxxx1045: Sep 4 14:35:48(无)服务器名称:信息服务::xxxx1045:服务::TR181 35 WRAPPER onSet_INT_xxxx_Established(1432):xxxx1045值false

Sep 4 14:35:48 (无)服务器名称:调试服务::xxxx1045:服务::VPN-SMU setTunnelInactiveCause(1993):调用函数'void vpn_smu::NetToNet::setTunnelInactiveCause()‘

Sep 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1604):n2n :隧道'n2n_1‘未建立

Sep 4 14:35:48 (无)服务器名称:调试服务::xxxx1045:服务::VPN-SMU updateRoutes(1863):调用函数'void vpn_smu::NetToNet::updateRoutes(int)‘

Sep 4 14:35:48 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1647):n2n : m_Counter 6!=1,不重新连接重试

Sep 4 14:35:51 (无)服务器名称:调试服务::xxxx1045:服务2::服务2-OSM recv_SERVICE2_msg(325):从SERVICE2应用程序接收请求(800)

Sep 4 14:35:51 (无) serverName:debug SERVICE::xxxx1045: SERVICE2::SERVICE2-OSM receive_request_get_parameter_values(388):内部请求获取路径(Aaa2)

Sep 4 14:35:51 (无) serverName:debug SERVICE::xxxx1045: SERVICE2::SERVICE2-OSM receive_request_get_parameter_values(388):内部请求获取路径(Aaa1)

Sep 4 14:35:51 (无) serverName:debug SERVICE::xxxx1045: SERVICE2::SERVICE2-OSM receive_request_get_parameter_values(388):内部请求获取路径(Xxx2)

Sep 4 14:35:51 (无) serverName:debug SERVICE::xxxx1045: SERVICE2::SERVICE2-OSM receive_request_get_parameter_values(388):内部请求获取路径(Xxx1)

Sep 4 14:35:51 (无)服务器名称:调试服务::xxxx1045: XMOS -> onReceive(386):接收XMO请求:标识符(838)会话的标识符(0)

Sep 4 14:35:51 (无)服务器名称:调试服务::xxxx1045: XMOR -> xmor_reply_send(214):发送XMO回复:标识符(838)会话的标识符(1)

Sep 4 14:35:51 (无) serverName:debug SERVICE::xxxx1045: SERVICE2::SERVICE2-OSM reply_to_SERVICE2(151):回复SERVICE2: XMO请求(0x1a03804) XMO代码(16777216)

Sep 4 14:35:52 (无)服务器名称:调试服务::xxxx1045:服务::VPN-SMU setStatus(SMU):调用函数'void vpn_smu::NetToNet::setStatus()‘

Sep 4 14:35:52 (无)服务器名称:信息服务::xxxx1045:服务::VPN-SMU setStatus(1381):n2n : n2n :检查状态7

Sep 4 14:35:52 (无)服务器名称:通知服务::xxxx1045:服务::xexecve_cmd_with_delay(549):cmd 'ipsec status n2n_1‘

输出应如下所示

服务::xxxx1045服务2::服务2-OSM receive_request_get_parameter_values(388):50次

SERVICE::xxxx1045: SERVICE::xexecve_cmd_with_delay(549):cmd 'ipsec状态n2n_1':100次

服务::xxxx1045:服务::VPN-SMU getNextRemoteEp(235):没有可用的RemoteEp: 150次

我正在尝试对输出进行分组和计数,这样我就不必搜索整个日志来找出报告了多少次错误。

EN

回答 1

Stack Overflow用户

发布于 2019-09-04 22:37:01

下面的代码使用正则表达式给出了完全相同的结果。

代码语言:javascript
复制
import re
import string

frequency = {}
document_text = open('log.txt', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\bapache\b|\bdhcp\b|\bsshd\b', text_string)

for word in match_pattern:
    count = frequency.get(word, 0)
    frequency[word] = count + 1

frequency_list = frequency.keys()

for words in frequency_list:
    print words, frequency[words]

输出: apache 6 dhcp 7 sshd 1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57790570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档