【发布时间】:2013-02-15 17:43:51
【问题描述】:
我有一个日志文件,里面有以下格式的数据
[1361991081] SERVICE NOTIFICATION: qreda;qa-hadoop1;CPU Load;CRITICAL;notify-service-by-email;CRITICAL - load average: 18.29, 18.14, 18.10
[1361991371] SERVICE NOTIFICATION: qreda;CRITICAL-SERVICES_FOR_LAST_24_HOURS;qa-hadoop1:Critical Services;CRITICAL;notify-service-by-email;CPU Load,Memory,
[1361994681] SERVICE NOTIFICATION: qreda;qa-hadoop1;CPU Load;CRITICAL;notify-service-by-email;CRITICAL - load average: 18.02, 18.06, 18.11
[1361994971] SERVICE NOTIFICATION: qreda;CRITICAL-SERVICES_FOR_LAST_24_HOURS;qa-hadoop1:Critical Services;CRITICAL;notify-service-by-email;CPU Load,Memory,
我包含过去 7 天的所有数据。我想 grep 此文件以显示昨天的日志。这里日期显示为时间戳。我正在使用以下命令
cat /usr/local/nagios/var/nagios.log |grep qa-hadoop1|grep CRITICAL|grep NOTIFICATION | awk -F, '{ if ($1>"[1361989800]" && $1<"[1362076199]") print }'
其中1361989800 是Thu Feb 28 00:00:00 IST 2013 的计算时间戳值
而1362076199 是Thu Feb 28 23:59:59 IST 2013 的计算时间戳值。
这很好用,但问题是我如何将1361989800 和1362076199 作为参数传递??
【问题讨论】:
标签: linux bash awk grep pattern-matching