我需要查看去年的所有 Apache 日志,看看是否曾从外部 IP 地址访问过某个 php 页面 (foobar.php)。
所以我需要在 Apache .log 和 log.gz 文件中找到包含 foobar.php 但排除来自所有 LAN IPs (192.168.x.x) 的访问的所有行。
find 或 grep 命令可以做到吗?
最佳答案
假设您的日志采用通用日志格式 (CLF),这样的事情应该可行:
zgrep -v '^192\.168\.' access.log* | grep '/foobar\.php'
关于regex - 在 Linux 服务器上使用 "find"和正则表达式否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165783/