码迷,mamicode.com
首页 > 其他好文 > 详细

awk使用案例一例

时间:2015-05-27 16:04:59      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:awk

需求:

nginxaccess.log日志分析,要求最近100次请求中状态值不是200的百分比。

日志格式如下:

192.168.123.6 - - [26/May/2015:23:44:21+0800] "GET /get_seller_info&format=json HTTP/1.1" 200 34679"-" "Dalvik/1.6.0 (Linux; U; Android 4.4.4; MX4 ProBuild/KTU84P)" "-" "3.562"

 

思路:

1、先处理文件,获取所有的状态值,然后取最后100行进行计算

awk -F" |HTTP/1." ‘{if($10 ~ /^[0-9]/)print $10}‘ access.log |tail -100|awk ‘{if($1!=200)S++}END{if(NR<100) print S*100/NR;else print S}‘‘

2、先取文件最后100行,然后取状态值进行计算

tail -100 access.log |awk -F" |HTTP/1." ‘{if ($10 ~ /^[0-9]/) S[$10]++} END {if(NR<100)print(NR-S[200])/NR;else print (NR-S[200])}‘

 

两种方法效率比较:

技术分享

第二种方法效率更高


本文出自 “分享是一种快乐” 博客,请务必保留此出处http://gladiator.blog.51cto.com/2313511/1655589

awk使用案例一例

标签:awk

原文地址:http://gladiator.blog.51cto.com/2313511/1655589

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!