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