|
这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 Linux 运维过程中,经常会遇到这样的需求:
想看看昨天都有哪些 IP 访问了我们的网站,访问最多的是谁?
今天就分享一条命令,配合 nginx 或 apache 的 `access.log`,快速统计出“昨天访问最多的 IP 排行前 20 名”。
思路解析
1. nginx 日志默认格式中包含了访问时间,例如:
- 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` 来统计和排序。
命令如下
- grep "$(date -d yesterday '+%d/%b/%Y')" /www/wwwlogs/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
复制代码
示例输出
- 563 123.45.67.89
- 231 111.222.333.444
- 207 118.107.12.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` 查看详情。
|
|