標籤:add log 指令碼 item Nginx訪問日誌 end TE strong ever
前言: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) + 1ip_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) + 1ip_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條)