unix - 在 Nginx access.log 中获取每个 IP 每个请求的请求计数

标签 unix nginx devops

我有运行 nginx Debian GNU/Linux 9

的 unix 服务器

我试图在 Nginx access.log 文件中获取每个 IP 每个请求的请求计数以进行分析,所以 我有两个问题:

  1. 是否有一个unix命令可以从日志文件(整个文件)中按每个IP每个请求获取此信息?
  2. 还可以按日期过滤吗?我的意思是获取某一天每个请求每个 IP 的请求计数。所以希望我能得到这样的东西
IP        count
127.0.0.1 4
127.0.0.2 5
127.0.0.3 6

我找到了这个,但它只计算 ips

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

最佳答案

是的,您可以在第一个命令中使用 grep :

grep '12/Jan/2021' access.log | awk '{print $1}' | sort | uniq -c | sort -nr

对于特定日期,使用扩展正则表达式:

grep -E '11/Jan/2021|12/Jan/2021' access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20

关于unix - 在 Nginx access.log 中获取每个 IP 每个请求的请求计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63905557/

相关文章:

json - 属性服务 token 不能为空

c - 这些 IP 地址来自哪里?

java - Postgres 错误(设置 PLJava)

linux - 删除文件中匹配一个字符串但不匹配另一个字符串的行 - SED,BASH?

Linux:文本文件中第 'x' 行到 'y' 行的字符数

caching - 具有可变参数顺序的 Nginx 缓存

nginx - 只提供图像

reactjs - 如何使用docker-compose构建和部署ReactJs

linux - 使用现有的 Ansible 角色创建自定义 Docker 镜像

azure - 无法在 Azure devops 中找到 powerplatform