python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)【转】

news/2024/8/26 4:19:02

前言:python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)。其实用awk+sort等命令可以实现,用awk数组也可以实现,这里只是用python尝试下。

 

apache脚本:

ips = {}
with open("/root/mail_access_log-20180629") as fh:
    for line in fh:
        ip = line.split(" ")[0]
        if 6 < len(ip) <=15:
            ips[ip] = ips.get(ip, 0) + 1

ip_num = []
for ipaddr,num in ips.items():
   ip_num.append((ipaddr,num))

ip_num.sort(key=lambda x: x[1], reverse=True)

for ipaddr,num in ip_num[:20]:
    print('IP地址为{}, 访问次数为{}'.format(ipaddr,num))

 

nginx脚本:

ips = {}
with open("/root/access.log-20180629") as fh:
    for line in fh:
        ip = line.split(" ")[0]
        if 6 < len(ip) <=15:
            ips[ip] = ips.get(ip, 0) + 1

ip_num = []
for ipaddr,num in ips.items():
   ip_num.append((ipaddr,num))

ip_num.sort(key=lambda x: x[1], reverse=True)

for ipaddr,num in ip_num[:20]:
    print('IP地址为{}, 访问次数为{}'.format(ipaddr,num))

 

转自

python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)-赛里-51CTO博客
https://blog.51cto.com/net881004/2134826

其他参考

Python基于nginx访问日志并统计IP访问量 - 88686 - 博客园 https://www.cnblogs.com/www886/p/4341313.html
python获取nginx超时访问日志 - 独孤仁的专栏 - CSDN博客 https://blog.csdn.net/kong2030/article/details/81181057
Python分析NGINX日志里面相同IP第一次访问时间和最后一次访问时间-GoDevops-51CTO博客 https://blog.51cto.com/dreamlinux/2120866
Python3 max() 函数详解 获取多个参数或列表中的最大值 - 张恺阳博客 https://www.zky.name/article/51.html

转载于:https://www.cnblogs.com/paul8339/p/10955848.html


http://www.niftyadmin.cn/n/3459246.html

相关文章

sqlserver 查看表结构 字段 长度的2种方式

第1种&#xff1a;自己写SQL查询 selectc.name as tablename,a.name as [column],a.length ,a.isnullable,b.name as [type]FROM syscolumns a left join systypes b on a.xtypeb.xusertypeinner join sysobjects c on a.idc.id and c.xtypeUwhere c.name 表名 或 sele…

C/C++Unix网络编程-套接字编程简介

套接字地址结构 套接字的地址结构可以在两个方向上传播&#xff1a;从进程到内核和从内核到进程。 IPV4套接字地址结构 sin_len是长度字段&#xff0c;有的平台上的套接字没有这个东西&#xff0c;因为有外置的sizeof运算符。不是posxi标准强制的字段sin_family,sin_addr,sin…

Unix环境高级编程-进程间通信

进程间通信 同一台主机上的进程通信 – 不同主机上的通信 1、管道 内核提供&#xff0c;单工&#xff0c;自同步机制&#xff1a;管道永远是迁就慢的那一方 在使用管道的时候&#xff0c;一般一个进程的一个管道只使用read或者write&#xff0c; 最好把另一端关闭。 绝对不会一…

推荐日常生活用品

http://bbs.tianya.cn/post-funinfo-7680101-1.shtml 电动洗鼻器 水牙线 (飞利浦?) 智能猫眼&#xff1a; 类似于装在门口的监控&#xff0c;不用另外接线&#xff0c;而且原来防盗门上的猫眼只能起装饰作用&#xff0c;一拧就掉了&#xff0c;智能猫眼从外面是拧不掉的…

sqlserver check约束 从基础到高级应用 总结

1. 规定某 字段的数据必须是字母或者数字或者字母 alter table 表名 add constraint 约束名 check(字段 like %[0-9][a-z]%)上边是必须有字母和数字的&#xff0c;你可以加个&#xff1a;or 字段 like %[0-9]%or 字段 like %[a-z]% 2. 时间约束 EndTime不能早于BeginTime EndTi…

官网下载jdk的步骤

打开网址&#xff1a; https://www.oracle.com鼠标悬浮在 ‘Menu’ 》 悬浮在 ‘Developers’ 》点击 ‘Developers Porta 3. 下拉 》点击 ‘Java’ 4. 下拉 》点击 ‘Download’ 5. 点击 ‘Download 6. 下拉到最后找到 ‘Java Archive’ 》 点击 ‘DOWNLOAD’ 7. …

C/C++Unix网络编程-IPC简介

IPC是进程间通信的简称。 进程、线程与信息共享 Unix进程间的信息共享的方式&#xff1a; (1) 左边的两个进程共享存留于文件系统中某个文件上的某些信息。为访问这些信息、每个进程都得穿越内核(例如read、write、lseek等)。当一个文件有待更新时&#xff0c;某种形式的同步…

【跃迁之路】【613天】程序员高效学习方法论探索系列(实验阶段370-2018.10.17)...

(跃迁之路)专栏 实验说明 从2017.10.6起&#xff0c;开启这个系列&#xff0c;目标只有一个&#xff1a;探索新的学习方法&#xff0c;实现跃迁式成长实验期2年&#xff08;2017.10.06 - 2019.10.06&#xff09;我将以自己为实验对象。我将开源我的学习方法&#xff0c;方法不断…