在我的Apache2 access.log中,如何过滤显示的内容?

时间:2010-03-11 00:00:02

标签: linux apache unix logging

有人告诉我这样做是为了跟踪最新的人撞到我的服务器:

tail -f access.log

然而,这显示了所有“包含”,包括JS文件,图形等。如果我只是想看到人们点击的页面怎么办?如何使用tail -f过滤它?

2 个答案:

答案 0 :(得分:1)

您可以通过grepawk管道输出。例如,如果您的所有网页在网址中都有.php,则可以尝试以下操作:

tail -f access.log | grep '\.php'

如果您的访问日志包含引荐来源字段,则上述内容也会匹配许多资源。我们只对请求字段中.php的事件感兴趣,而不是引荐来源字段。通过使用awk,我们可以区分这些。

tail -f access.log | awk '$7 ~ /\.php/ { print }'

如果您的日志格式异常,则可能需要调整$7

答案 1 :(得分:0)

如果您正在提供.php文件:

tail -f access_log | grep ".php"

或者,如果您的所有包含都位于名为“include”的文件夹中,例如:

tail -f access_log | grep "include" -v

或者如果您想计算某个文件的匹配数:

grep "filename" access_log -c