我正在考虑将我们网站上提供的所有图片移至 Amazon S3,以减轻服务器负载。除了将每张照片都转储到 S3 之外,我还想知道是否可以以某种方式跟踪服务器上访问最多的文件?
我们使用的是 Linux(具体来说是 CentOS),我可以通过 SSH 访问。有什么建议吗?
答案1
如果你正在使用 Apache,并且启用了日志记录功能,那么可以通过日志分析器(例如 AWStats)运行日志文件,但也存在其他分析工具
http://awstats.sourceforge.net/
是否要将日志文件留在服务器上并在那里进行分析,或将其发送到某个地方,这取决于您。这实际上取决于安全性和性能容量。
答案2
如果您谈论通过 Web 服务器进行访问,那么 apachetop 就是可以满足您期望的工具。
答案3
以下一行代码将概述你的服务器访问每个文件的次数:
awk '{print $7}' /path/to/apache/logfile | sort | uniq -c | sort -r -n -k1,1
我假设使用的是通用日志格式 (CLF),因此资源路径位于第 7 列。如果您只对特定格式 (jpeg) 感兴趣,请使用 grep 进行过滤。如果您的日志是 logrotated(可能如此),请使用 zcat 解压并连接它们:
awk '{print $7}' <(zcat /var/log/apache/*.gz) | sort | uniq -c | sort -r -n -k1,1