浏览量:53次
前一段时间,我写过一篇文章,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"; }
}'
结果:
性能:
422780条日志,统计完成速度是:5秒左右。
[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【779898168@qq.com】,我们在确认后,会立即删除,保证您的版权。