【问题标题】:In my Apache2 access.log, how do I filter what gets displayed?在我的 Apache2 access.log 中,如何过滤显示的内容?
【发布时间】:2011-01-26 04:03:59
【问题描述】:

有人告诉我这样做是为了跟踪最近访问我服务器的人:

tail -f access.log

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

【问题讨论】:

    标签: linux apache unix logging


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      如果您提供 .php 文件:

      tail -f access_log | grep ".php"
      

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

      tail -f access_log | grep "include" -v
      

      或者如果您想计算某个文件的点击次数:

      grep "filename" access_log -c
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-03
        • 1970-01-01
        • 2020-03-02
        • 2012-07-11
        • 2015-07-08
        • 1970-01-01
        • 1970-01-01
        • 2013-10-19
        相关资源
        最近更新 更多