【Shell】Nginx日志分析

Nginx日志分析

192.168.220.1 - - [01/May/2022:08:46:16 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" "-"

$remote_addr		$1
$time_local			$4
$request			$7
$status				$9
$body_bytes_sent	 $10
  1. 统计2022年5月1日PV量

    grep '01/May/2022' /var/log/nginx/access.log |wc -l
    
    # 统计具体时间的PV量
    awk '$4>="[01/May/2022:08:30:00" && $4<="[01/May/2022:08:40" {print $0}' /var/log/nginx/access.log |wc -l
    
  2. 统计2022年5月1日 访问ip的top10

    grep '01/May/2022' access.log |awk '{ips[$1]++}END{for(i in ips){print i,ips[i]}}' |sort -k2 -rn|head -10
    
  3. 统计2022年5月1日 访问大于100次的IP

    grep '01/May/2022' access.log |awk '{ips[$1]++}END{for(i in ips){if(ips[i]>=100)print i,ips[i]}}'
    grep '01/May/2022' access.log |awk '{ips[$1]++}END{for(i in ips){print i,ips[i]}}' |awk '$2>=10'
    
  4. 统计2022年5月1日 访问最多的10个页面($request top10)

    grep '01/May/2022' access.log |awk '{urls[$7]++}END{for(i in urls){print i,urls[i]}}' |sort -k2 -rn|head -10
    
  5. 统计2022年5月1日 每个URL访问内容总大小($body_bytes_sent)

    grep '01/May/2022' access.log |awk '{size[$7]+=$10}END{for(i in size){print i,size[i]}}' |sort -k2 -rn
    
    # 同时打印访问次数
    grep '01/May/2022' access.log |awk '{urls[$7]++;size[$7]+=$10}END{for(i in size){print i,urls[i],size[i]}}' |sort -k2 -rn
    
  6. 统计2022年5月1日 每个IP访问状态码数量($status)

    grep '01/May/2022' access.log |awk '{ip_status[$1" "$9]++}END{for(i in ip_status){print i,ip_status[i]}}' |sort -k1rn |head
    
  7. 统计2022年5月1日 IP访问状态码为404出现的次数

    grep '01/May/2022' access.log |awk '{if($9=="404"){ip_status[$1" "$9]++}}END{for(i in ip_status){print i,ip_status[i]}}' |sort -k3rn
    
  8. 统计前一分钟的PV量

    date=`date -d '-1 minute' +%d/%b/%Y:%H:%M`;awk -v date=$date '$0 ~ date {i++}END{print i}' access.log 
    
  9. 统计2022年5月1日 各种状态码的数量

    grep "01/May/2022" access.log |awk '{ip_code[$9]++}END{for(i in ip_code){print i,ip_code[i]}}'
    
    # 显示所占百分比
    grep "01/May/2022" access.log |awk '{code[$9]++;total++}END{for(i in code){printf i" "code[i]" %.2f%\n",code[i]/total}}'
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值