awk 分析web日志(页面执行时间)(常见应用3)

14 篇文章 0 订阅

前一段时间,我写过一篇文章,shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询),其中提到了分析耗时页面重要性。今天主要讲的,是通过awk分析日志,快捷得到执行时间。在性能以及效率方面比前一篇提到的有很大提高!

 

一、web日志文件格式

222.83.181.42 - - [09/Oct/2010:04:04:03 +0800] GET /pages/international/tejia.php HTTP/1.1 "200" 15708 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Sicent; WoShiHoney.B; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "-" 0.037

按照空格分隔的话,最后一个字段[0.037] 是页面执行时间,第7个字段 是页面访问地址。

 


二、执行代码

 

awk 'BEGIN{
print "Enter log file:";
getline logs;
#logs="/var/log/nginx/access.log-20101008";
OFMT="%.3f";

while(getline < logs)
{
    split($7,atmp,"?");
    aListNum[atmp[1]]+=1;
    aListTime[atmp[1]]+=$NF;
    ilen++;
}
close(logs);
print "\r\ntotal:",ilen,"\r\n======================================\r\n";
for(k in aListNum)
{
    print k,aListNum[k],aListTime[k]/aListNum[k] | "sort -r -n -k3";
}

}'



结果:

image

性能:

image

422780条日志,统计完成速度是:5秒左右。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值