Linux 系统查询 nginx 或 apache 当天访问最多的 IP 方法,以一键安装包为例可以执行如下命令:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要查询Linux系统中Nginx或Apache当天访问最多的IP地址,您可以根据实际安装的Web服务器类型和日志存放路径调整以下命令。这里提供一个适用于常见日志格式的命令示例,该命令首先筛选出指定日期的日志条目,然后统计各IP地址的访问次数,并按访问次数降序排序。
假设您的Nginx访问日志路径为/var/log/nginx/access.log
,您可以使用如下命令:
cat /var/log/nginx/access.log | grep "$(date +'%d/%b')" | awk '{print $1}' | sort | uniq -c | sort -rn
如果您的环境是Apache,且日志存放于默认位置如/var/log/apache2/access.log
,相应的命令应调整为:
cat /var/log/apache2/access.log | grep "$(date +'%d/%b')" | awk '{print $1}' | sort | uniq -c | sort -rn
命令解释:
grep "$(date +'%d/%b')"
:这部分命令用来筛选出包含当天日期(格式为日/月)的所有日志行。awk '{print $1}'
:使用awk提取每行中的第一个字段,通常情况下这是访问日志中的IP地址。sort
:对提取出的IP地址进行排序,以便后续的统计可以正确计数。uniq -c
:统计排序后的IP地址出现的次数。sort -rn
:最后再次排序,这次是按照访问次数进行降序排序,使得访问次数最多的IP地址排在最前面。请确保将上述命令中的日志文件路径替换为您实际的Nginx或Apache访问日志路径。