【问题标题】:Split by days a big nagios log file按天拆分一个大的 nagios 日志文件
【发布时间】:2014-10-31 09:00:11
【问题描述】:

我有一个 6G 的 Nagios 日志文件(一个月的日志记录),我想每天将其拆分为一个文件。意思是从1个文件:nagios.log获取文件:nagios-2014-10-01.log到nagios-2014-10-31.log(31个文件)。

每一行都以 UNIX 时间戳开头:

[1414709999] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;servername;DiskTime;0;OK: \Physikalischer Datenträger(_Total)\Zeit (%): 0.479991|\Physikalischer Datenträger(_Total)\Zeit (%)=0.47999;55;90

所以我必须找到一种方法来 grep 特定日期的所有行并将它们移动到单独的文件中。 我已经尝试过使用 SED 和 GREP,但我找不到 REGEX 这种时间戳范围的方法。

【问题讨论】:

  • 欢迎来到 SO!分享你的尝试;解释您对一组缩小的样本输入的期望(例如,几天内的一些条目);并描述你所尝试的不足之处。可能只需要一些微调。

标签: regex logging sed unix-timestamp nagios


【解决方案1】:
 d=2014-10-01
 awk -v t=$(date -d $d +"%s") -F '[\[\]]' '$2 >= t {print}' nagios.log > nagios-${d}.log

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 2015-08-08
    • 2010-09-19
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多