1

为了对抗僵尸网络攻击,我试图分析一个 nginx access.log 文件来找出哪些用户代理是最频繁的,这样我就可以找到罪魁祸首并拒绝他们。我怎样才能做到这一点?

4

2 回答 2

6

在您的访问日志上尝试这样的操作,替换为您的访问日志的路径,还请记住,一些日志文件会被压缩并会创建新文件

sudo awk -F" " '{print $1}' /var/log/nginx/access.log | sort | uniq -dc

编辑

抱歉,我刚刚注意到您想要用户代理而不是 IP

sudo awk -F"\"" '{print $6}' /var/log/nginx/access.log | sort | uniq -dc

对升序追加进行排序| sort -nr并限制为 10 个追加| head -10

所以最终的总线将是

sudo awk -F"\"" '{print $6}' /var/log/nginx/access.log | sort | uniq -dc | sort -nr | head -10
于 2014-04-09T09:09:12.563 回答
1

获取用户代理

sudo awk -F'"' '/GET/ {print $6}' /var/log/nginx-access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn


awk(1) - selecting full User-Agent string of GET requests
cut(1) - using first word from it
sort(1) - sorting
uniq(1) - count
sort(1) - sorting by count, reversed
于 2020-02-17T07:17:58.400 回答