Brent Asked: 2009-07-15 12:15:42 +0800 CST2009-07-15 12:15:42 +0800 CST 2009-07-15 12:15:42 +0800 CST 基于时间戳剪切日志文件部分的快速脚本 772 我正在寻找一个快速脚本,它将解析一个大的 mail.log,并返回两个指定时间戳之间的部分。我想在我所有的邮件服务器上运行它,并让他们将相关日志部分复制到一个中心位置以进行进一步分析。 我在 bash 中写了一些有用的东西,但是速度很慢。 有没有人知道已经存在的任何东西来实现这一点 - 或者我需要学习 perl 并自己编造一些东西? (我没有把它放在 SO 上,因为我还没有到我想编写任何代码的地步——只是在寻找其他人已经在使用的东西) scripting log-files 2 个回答 Voted MikeyB 2009-07-15T12:59:58+08:002009-07-15T12:59:58+08:00 我爱 awk :) 对于我的日志,格式为: Jul 14 12:49:10 xxxxxx sendmail[31337]: ........... 我会使用: awk '$3 >= "12:00:00" && $3 <= "13:00:00" {print;}' < /var/log/maillog 大概您可以根据需要进行调整,例如,如果您不按天拆分日志。 奖金: 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 Gil Bourgeois 2016-11-23T01:20:33+08:002016-11-23T01:20:33+08:00 对于特定的日期范围并打印 > 输出文件 (我不能在上面的答案中发表评论,否则我会这样做) 高温高压 awk '$2 >= "21" && $3 >= "09:00:00" && $2 >= "21" && $3 <= "11:00:10" {print > "m_range.log";}' < /var/log/m.log cat m_range.log ... Nov 21 09:00:17 mail postfix/qmgr[1694]: 1C50D276524A: from=<[email protected]>, size=2378, nrcpt=1 (queue active) ...
我爱 awk :)
对于我的日志,格式为:
我会使用:
大概您可以根据需要进行调整,例如,如果您不按天拆分日志。
奖金:
Apache 格式,我碰巧有这种格式:
对于特定的日期范围并打印 > 输出文件
(我不能在上面的答案中发表评论,否则我会这样做)
高温高压