网站制作学习网Linux→正文:统计nginx日志IP访问前几名
字体:

统计nginx日志IP访问前几名

Linux 2023/8/9 21:50:40  点击:不统计


看服务器被攻击,查nginx日志统计访问的前N名,然后判断是否deny
那怎么统计前几名的nginx日志IP呢,命令如下:
 
cat logname.log | awk '{print $1}' | sort | uniq -c | sort -nrk1 | awk '{print $2" "$1}'>ipcount.log
 
对上面逐个解释一下
cat logname.log # 读取 日志内容
awk '{print $1}' # 获取每行的 IP, 默认按照空格分隔,nginx日志默认是空格
sort # 按照IP排序
uniq -c # uniq前,必须sourt, 求每个IP 唯一值并计算数量, 行前加上重复次数,即第一列为重复次数 k1表示的是次数
sort -nrk1 # 排序,-n 用数值定向,否则会按字符排序出现10比1小的情况-r 倒序, -k1 设定排序的组序列,即按照单个ip统计数量排序
awk '{print $2" "$1}' #按照空格分隔,输出第二列IP+空格+第一列数量
 
这样就计算了全部的IP量 如果计算前N名的
 
cat logname.log | awk '{print $1}' | sort | uniq -c | sort -nrk1 | awk '{print $2" "$1}'| head -N>ipcount_N.log

·上一篇:shell 截取文件从n行到结束 >>    ·下一篇:scp 断点续传 >>
推荐文章
最新文章