获取特定日期的日志(apache 访问日志)

获取特定日期的日志(apache 访问日志)

您能否建议我如何从输出如下的文件中获取特定时间范围:

81.200.176.13 - - [23/Mar/2021:09:34:03 +0000] "GET /crx/packmgr/img/thumbnail.png HTTP/1.1" 200 6235

我需要日期从 3 月 22 日 20 点到 22 点

答案1

由于您的时间范围非常具体,您可以使用grep

grep '\[23/Mar/2021:2[0-2]' /var/log/apache2/access.log

即搜索日期字符串并且比在20-22h范围内

或者,供将来参考,sed可能是要走的路:

sed `/START/,/END/p`

例如

sed '/21\/Mar\/2021:01:/,/23\/Mar\/2021:22:/p'

如果你强制 apache 使用journald(参考- 请注意那里的警告),将来甚至可能依赖:

journald -u apache2 --since "2021-03-23 20:00:00" --until "2021-03-23 22:00:00"

答案2

您不能在文本编辑器中打开日志文件,然后搜索最早的时间戳,然后从那里开始吗?如果你想让事情变得非常简单。

在 VIM 中,当您未处于编辑模式时,您可以编写 /2021:20 ,它会跳转到包含此时间戳的第一行。从那里滚动。

相关内容