返回列表 发布新帖
查看: 36|回复: 0

一条命令,统计“昨天访问最多的 IP 地址”

发表于 2025-6-20 16:17:58 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在 Linux 运维过程中,经常会遇到这样的需求:
想看看昨天都有哪些 IP 访问了我们的网站,访问最多的是谁?
今天就分享一条命令,配合 nginx 或 apache 的 `access.log`,快速统计出“昨天访问最多的 IP 排行前 20 名”。

思路解析
1. nginx 日志默认格式中包含了访问时间,例如:
  1. 123.45.67.89 - - [17/Jun/2025:09:30:01 +0800] "GET /index.html HTTP/1.1" 200 -
复制代码

2. 我们只需要:
用 `grep` 筛选出“昨天”的访问记录;
用 `awk` 抽出 IP(即日志的第 1 列);
然后用 `sort | uniq -c | sort -nr` 来统计和排序。

命令如下
  1. grep "$(date -d yesterday '+%d/%b/%Y')" /www/wwwlogs/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
复制代码

示例输出
  1. 563 123.45.67.89
  2.   231 111.222.333.444
  3.   207 118.107.12.4
  4.   ...
复制代码

实际路径说明
请根据你的实际日志文件位置替换 `/www/wwwlogs/access.log`:
宝塔面板:可能是 `/www/wwwlogs/www.你的域名.log`
nginx 默认:可能是 `/var/log/nginx/access.log`
apache 默认:可能是 `/var/log/httpd/access_log`

建议:
可以加 `> /root/yesterday_top_ip.txt` 导出结果文件。
想每天自动统计?可以加到 `crontab` 定时任务里。
想查具体 IP 的行为?再配合 `grep 123.45.67.89 access.log` 查看详情。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.093827 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表