有什么方法可以衡量一个Apache日志文件中使用了多少流量?

格式:

66.249.72.214 - - [05/Nov/2011:12:47:37 +0200] "GET /produktas/565638 HTTP/1.1" 200 4699 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

我如何理解4699是已传输的字节(不包括 header )。

我需要一个简单的解决方案(也许是一些bash脚本)来对每个日志行中的字节求和。

最佳答案

尝试这个。我在本地文件上对其进行了测试,但无法确定它是否在所有配置/语言环境/下都有效。

cat apache.log | perl -e 'my $sum=0; while(<>) { my ($traffic) = m/\[.+\] ".+" \d+ (\d+)/; $sum += $traffic}; print "$sum\n"'

2017年1月更新:同时,我学到了更多的Perl,这就是我今天要这样做的方式:
cat apache.log | perl -nE '/\[.+\] ".+" \d+ (\d+)/; $sum += $1; END {say $sum}'

关于linux - 测量来自Apache访问日志的流量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8019742/

10-16 10:12