用于从 2 个日期之间的任意日志文件集中转储条目的工具

用于从 2 个日期之间的任意日志文件集中转储条目的工具

几天前,我发生了一次中断事件,支持团队要求提供该期间的任何可用日志,在考虑如何执行此操作时,我想到能够解析许多日志文件通常会很方便一次用于 2 个日期之间的条目。

我看到许多工具可以使这成为可能,如果我们有远见来配置它们,尤其是;
splunksyslog-ngrsyslog和其他将日志存储到某些可搜索后端(例如 mysql)的内容。

(我肯定计划安装一个中央日志主机来满足这个要求)

然而,短期内我对一个工具感兴趣,它可以遍历/var/log/*文件夹并转储到标准输出,最好使用简单的选项语法(查找选项很好+mtime等)并用可以快速完成此操作的东西编写(所以可能是C而不是 Perl 或 ruby​​)

我看到了一堆我正在寻找的工具,它们可能适合也可能不适合目的,例如 ,,,,mergelog但没有一个真正跳出来明显适合于此,这很奇怪,因为我希望这是这样的在 UNIX 工具上完成的事情。logppsec

答案1

  1. 使用:

    find ... -mtime [fromdate] -a -not -ctime [todate]
    

    查找之后修改[fromdate]和之前创建的所有文件[todate]

  2. 对于找到的文件,发明一种创造性的模式来提取感兴趣的行。使用egrep/awk因为它们比 perl/python 快得多。例子:

    awk '/^2012-01-(01|02|03)/'
    

    将打印 2012 年 1 月第一、第二和第三天的所有行。

以上是2分钟的编写和运行。如果性能确实是一个问题,那么继续尝试寻找更复杂的东西。

相关内容