命令分析nginx访问日志的用法
程序员文章站
2022-07-29 19:46:52
awk分析日志常用高级使用命令方法 分析访问日志(Nginx为例) 日志格式: ......
awk分析日志常用高级使用命令方法
分析访问日志(nginx为例)
日志格式:
'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'
统计访问ip次数: # awk '{a[$1]++}end{for(i in a)print v,a[i]}' access.log 统计访问访问大于100次的ip: # awk '{a[$1]++}end{for(i in a){if(a[i]>100)print i,a[i]}}' access.log 统计访问ip次数并排序取前10: # awk '{a[$1]++}end{for(i in a)print i,a[i]|"sort -k2 -nr |head -10"}' access.log 统计时间段访问最多的ip: # awk'$4>="[02/jan/2017:00:02:00" && $4<="[02/jan/2017:00:03:00"{a[$1]++}end{for(i in a)print i,a[i]}'access.log 统计上一分钟访问量: # date=$(date -d '-1 minute'+%d/%d/%y:%h:%m) # awk -vdate=$date '$4~date{c++}end{printc}' access.log 统计访问最多的10个页面: # awk '{a[$7]++}end{for(i in a)print i,a[i]|"sort -k1 -nr|head -n10"}' access.log 统计每个url数量和返回内容总大小: # awk '{a[$7]++;size[$7]+=$10}end{for(i in a)print a[i],i,size[i]}' access.log 统计每个ip访问状态码数量: # awk '{a[$1" "$9]++}end{for(i in a)print i,a[i]}' access.log 统计访问ip是404状态次数: # awk '{if($9~/404/)a[$1" "$9]++}end{for(i in a)print i,a[i]}' access.log 附: sort -k 的用法,-k 则是按照第几列进行排序输出,可按照数字进行选择
上一篇: 我和张二狗
下一篇: 要么打舵要么踩刹车,而不是拼命按喇叭
推荐阅读
-
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
-
python写的一个squid访问日志分析的小程序
-
shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
-
nginx访问日志并删除指定天数前的日志记录配置方法
-
python实现分析apache和nginx日志文件并输出访客ip列表的方法
-
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
-
详解用ELK来分析Nginx服务器日志的方法
-
python+pandas分析nginx日志的实例
-
Nginx实现浏览器可实时查看访问日志的步骤详解
-
shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)