Nginx 日志文件 访问IP统计
来源:互联网 发布:小米5抢购软件下载 编辑:程序博客网 时间:2024/05/21 21:42
问题描述
Nginx访问日志文件内容如下:
10.9.40.134 - - [01/Aug/2016:06:29:42 +0800] "POST / HTTP/1.1" 302 0 "-" "python-requests/2.4.3 CPython/2.7.9 Linux/3.16.0-4-amd64"10.9.40.134 - - [01/Aug/2016:06:29:42 +0800] "GET /monitor.html?id=d00 HTTP/1.1" 200 8472 "-" "python-requests/2.4.3 CPython/2.7.9 Linux/3.16.0-4-amd64"
参考
如何通过命令行统计和排列访问日志里的ip数
linux sort,uniq,cut,wc命令详解
Python
解决方案
awk sort
$1表示以空格为分割符的第一个匹配项,也就是文件中的ip地址。使用sort对结果排序,uniq -c进行技术,最后sort -n是以“数字”来排序,针对统计后的访问次数来排序
awk '{print $1}' access.log.1 |sort|uniq -c|sort -n
awk for
默认变量为0,对每一行的$1作为key,cnt数组++,实现ip的计数。计数结束后END。然后把结果打印出来,最后sort -n以“数字”排序。
awk '{cnt[$1]++;}END{for(i in cnt){printf("%s\t%s\n", cnt[i], i);}}' access.log.1|sort -n
Python
使用re匹配ip地址的正则表达式,同样用字典来存储ip出现的次数。
import remydict = {}with open('/var/log/nginx/access.log.1') as f: for line in f: match = re.match(r'([0-9]{1,3}\.){3}[0-9]{1,3}', line) if match: ip = match.group() if ip in mydict.keys(): mydict[ip] += 1 else: mydict[ip] = 1print mydict
0 0
- Nginx 日志文件 访问IP统计
- nginx 统计日志访问ip个数
- nginx 统计日志访问ip个数
- Nginx日志访问统计
- python基于nginx访问日志统计客户端ip访问量
- Linux通过日志文件统计IP访问次数排序
- 统计Apache或nginx日志里访问次数最多的前十个IP
- 使用python 分析统计nginx访问日志ip次数并且排序
- 【SHELL】统计Nginx访问日志状态码
- awk查看与统计nginx访问日志
- python统计日志ip访问数脚本
- apache 统计日志访问IP数量
- linux小命令大世界2---统计Apache或Nginx访问日志里的独立IP访问数
- 用shell统计访问日志里每个ip访问次数
- AWK简单统计apache/nginx日志IP数
- 通过nginx日志统计独立ip的个数
- nginx自动切割日志访问文件脚本
- shell 统计nginx访问日志的前10
- 删除任务栏 creative cloud files
- Android注解式绑定控件,没你想象的那么难
- box-shadow 属性详解
- spring构建web应用以及ModelAndView中的 model value 在JSP中的EL表达式显示null解决办法
- 学习docker技术的体会(1):初步认识了解docker
- Nginx 日志文件 访问IP统计
- git初步使用-更新远程分支至本地
- 关联对象
- iOS使用读写plist文件方式对数据进行增删改查
- 用双缓存技术优化listview异步加载网络图片
- JavaScript - 完美运动框架
- KMP算法
- Java review--IO
- TotoiseSVN的基本使用方法