按天拆分一个大的nagios日志文件

时间:2014-10-31 09:00:12

标签: regex logging sed unix-timestamp nagios

我有一个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

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

1 个答案:

答案 0 :(得分:1)

 d=2014-10-01
 awk -v t=$(date -d $d +"%s") -F '[\[\]]' '$2 >= t {print}' nagios.log > nagios-${d}.log