几天前,我发生了一次中断事件,支持团队要求提供该期间的任何可用日志,在考虑如何执行此操作时,我想到能够解析许多日志文件通常会很方便一次用于 2 个日期之间的条目。
我看到许多工具可以使这成为可能,如果我们有远见来配置它们,尤其是;
splunk
、syslog-ng
、rsyslog
和其他将日志存储到某些可搜索后端(例如 mysql)的内容。
(我肯定计划安装一个中央日志主机来满足这个要求)
然而,短期内我对一个工具感兴趣,它可以遍历/var/log/*
文件夹并转储到标准输出,最好使用简单的选项语法(查找选项很好+mtime等)并用可以快速完成此操作的东西编写(所以可能是C而不是 Perl 或 ruby)
我看到了一堆我正在寻找的工具,它们可能适合也可能不适合目的,例如 ,,,,mergelog
但没有一个真正跳出来明显适合于此,这很奇怪,因为我希望这是这样的在 UNIX 工具上完成的事情。logpp
sec
答案1
使用:
find ... -mtime [fromdate] -a -not -ctime [todate]
查找之后修改
[fromdate]
和之前创建的所有文件[todate]
对于找到的文件,发明一种创造性的模式来提取感兴趣的行。使用
egrep
/awk
因为它们比 perl/python 快得多。例子:awk '/^2012-01-(01|02|03)/'
将打印 2012 年 1 月第一、第二和第三天的所有行。
以上是2分钟的编写和运行。如果性能确实是一个问题,那么继续尝试寻找更复杂的东西。