shell编程——awk分析nginx日志


nginx测试日志文件https://download.csdn.net/download/qq_35273918/36726208icon-default.png?t=N7T8https://download.csdn.net/download/qq_35273918/36726208


nginx日志字段说明


127.0.0.1 - - [31/Aug/2018:16:11:16 +0800] "GET /50x.html HTTP/1.1" 200 537 "-" "curl/7.29.0"


访问ip、访问时间、请求方式、请求url、响应状态码、响应body体大小、ua


根据访问ip进行统计


cat access.log | awk '{count[$1]++}END{for(ip in count){print ip,count[ip]}}'


cat access.log | awk '{count[$1]++}END{for(ip in count){print ip"\t"count[ip]}}'|sort -rnk 2


统计nginx的响应状态码


cat access.log|awk '{count[$9]++}END{for(ip in count){print ip,count[ip]}}'    #各个状态码数量


cat access.log|awk '{count[$9]++}END{for(status in count){print status,count[status]/NR*100"%"}}'  #比例统计


cat access.log|awk '{count[$9]++}END{for(status in count){print status"\t"int(count[status]/NR*100)"%"}}' #比例统计保留整数


根据ua统计


cat access.log|awk -F'"' '{print $(NF-1)}'


cat access.log|awk -F'"' '{count[$(NF-1)]++}END{for(ua in count){print ua,count[ua]}}'


根据时间统计,统计每分钟的访问量、每秒钟的访问量


cat access.log |awk '{print $4}'|awk -F':' '{print $1":"$2":"$3}'|awk '{count[$1]++}END{for(time in count){print time,count[time]}}' #统计每分钟的请求数


cat access.log|awk '{count[$4]++}END{ for(time in count){print time,count[time]} }' #每秒钟请求,并发


nginx日志过滤


cat access.log|awk '$9~/^2/' #状态码,正常请求


cat access.log|awk '$9~/^5/' #状态码,处理异常


cat access.log |awk -F'"' '$(NF-1) ~ /iPhone/' #过滤含有iphone的ua

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保定公民

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值