基于时间戳剪切日志文件部分的快速脚本

Bre*_*nt 1 scripting log-files

我正在寻找一个快速脚本来解析一个大的 mail.log,并返回两个指定的时间戳之间的部分。我想在我所有的邮件服务器上运行它,并让他们将相关日志部分复制到一个中央位置以供进一步分析。

我用 bash 写了一些有用的东西,但速度很慢。

有没有人知道已经存在任何东西来实现这一点 - 或者我需要学习 perl 并自己制作一些东西吗?

(我没有把它放在 SO 上,因为我还没有到要编写任何代码的地步——只是在寻找其他人已经在使用的东西)

Mik*_*eyB 7

我爱 awk :)

对于我的日志,其格式为:

Jul 14 12:49:10 xxxxxx sendmail[31337]: ...........
Run Code Online (Sandbox Code Playgroud)

我会用:

awk '$3 >= "12:00:00" && $3 <= "13:00:00" {print;}' < /var/log/maillog
Run Code Online (Sandbox Code Playgroud)

据推测,您可以根据需要进行调整,例如,如果您不按天拆分日志。

奖金:

Apache 格式,我碰巧遇到过:

xxx.xxx.xxx.xxx - - [01/Jul/2009:03:06:24 -0400] "GET /favicon.ico HTTP/1.1" 200 3638
awk '$4 >= "[01/Jul/2009:03:00:00" && $4 <= "[01/Jul/2009:04:00:00" {print;}' < access_log
Run Code Online (Sandbox Code Playgroud)