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

标签 linux apache unix logging

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

tail -f access.log

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

最佳答案

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

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

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

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

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

关于linux - 在我的 Apache2 access.log 中,如何过滤显示的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421614/

相关文章:

c++ timer implemetation - 分配一个成员函数来通知回调函数指针

c - 什么时候写入套接字 block ?

apache - tomcat-connectors-1.2.42-src 中的 mod_jk.dll 在哪里?

linux - 为什么设备文件的 mtime 没有得到更新?

linux - 如何在 yocto 构建中将 libgif 添加为一个包

javascript - window.requestFileSystem 在版本 3.3.0 中未定义

apache - 为bm25相似性配置solr

windows - 如何使用 ANT 从 Windows XP 系统执行 UNIX 命令

c++ - 现有的 C++ *nix 系统库?

python - 对文件内容进行排序