如何获得Apache下载计数一周

(如果合适的话,请移至serverfault – 这对我来说似乎更像是一个应用程序问题)

我有一个PHP服务器,托pipe播客的MP3文件。 我很乐意每周都能下载文件下载的次数(是否是长尾巴)? AWStats似乎并没有到位。

理想情况下,我会得到一个Excel文件,每行一个文件,然后每个星期(或一天)的一个列,每个文件/星期下载数字聚合在一个单元中。 有什么解决scheme(基于PHP的,或者我加载日志的Windows应用程序)可以生成这种格式的报告?

您可以使用apache日志查看文件何时被访问,并只处理日志文件。 我知道有很多工具可以自动parsing日志,但我从来没有用过。

谷歌search返回沙哑 , 在这里有一个示例日志

另一个想法是通过一个页面将请求传递到一个MySQL数据库,从那里,你可以生成所需的日志

@ phsr的build议,通过一页是最好的。 但是,如果你不想这样做,一个简单的bash脚本应该能够得到你想要的日志文件。

我不是很好的bash等,但如果这些文件在同一个目录中,像这样(伪代码)应该工作:

for each $file in $mp3dir echo $file + ',' + `cat apache.log | grep $file | wc -l` >>myreport.csv 

当然,grepfilter可能包含更具体的东西,以隔离可能存在于日志中的不相关的行。

另外,apache.log实际上是指定日志文件在一段时间内的累积 (假定您有正确的logrotate来每天轮换日志)。

另一种方法是使用grep从日志中获取所有“.mp3”行,并使用sed在每个条目之间形成一个csv行,这样你的文件名和date就在一行上。 然后将其提供给数据库,并从那里进行查询。

如果有人可以把这个“真正的”bash,请做:)

您将需要parsingWeb服务器日志文件。 日志格式将取决于Web服务器以及如何configuration日志logging。 有大多数语言的模块,使parsing日志相对琐碎。 没有理由诉诸从bash或awk从头开始写东西。

如果你不想写任何代码,那么我build议检查splunk。 有一个免费的版本,可以让你每天parsing高达500MB的日志数据,这是很多日志数据,所以你应该罚款免费/社区版本。

Splunk也可以为您导出结果。