测量来自Apache访问日志的stream量

有没有什么办法可以测量一个Apache日志文件中有多lessstream量?

格式:

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是不包括头文件传输的字节。

我需要一个简单的解决scheme(也许是一个小bash脚本)来总结每个日志的行中的字节。

Solutions Collecting From Web of "测量来自Apache访问日志的stream量"

尝试这个。 我测试了一个本地文件,但不知道它是否适用于所有配置/语言环境/ …

 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}' 

有关详细的日志文件监视和实际的带宽使用情况,请参阅AWSTATS。 它需要apache日志文件作为输入,并给你非常详细的访问者和带宽分析,图形。

另请尝试http://goaccess.prosoftcorp.com/

Apache访问日志 – 全局带宽使用情况:

 awk '{ s += $10 } END { print "Total ", s/1024/1024 " Mo", "- Moyenne ", s/NR/1024/1024 " Mo", "- Accès ", NR }' access.log 

而对于一个文件:

 grep NAME_OF_RESOURCE_HERE /var/log/apache2/access.log* | awk '{ s += $10 } END { print "Total ", s/1024/1024 " Mo", "- Moyenne ", s/NR/1024/1024 " Mo", "- Accès ", NR }' 

你得到这样的事情:总计301.985 Mo – Moyenne 0.0430055 Mo – Accès7022

我想你需要使用apachetop实用程序,尝试从APT安装下一个命令:

 sudo apt-get install apachetop 

然后用命令运行它:

 sudo apachetop -f /path/to/access.log 

而你是摇滚! 🙂