从日志文件中提取一小时之前的日志

时间:2013-07-16 06:02:53

标签: bash shell grep

我试图在1小时之前grep日志

像这样: -

grep "$(date --date='1 hour ago +%H') /var/log/oss.log | grep "MTS" > oss.new.log

但它在日志和我的输出中搜索"04"就像这样

frwY01jtaX 00:04:46,739 ERROR SiteDetectionUtil:47 MTS 
OlvYM6czmz 00:04:54,348 ERROR SiteDetectionUtil:47 MTS 
5iUr2l1LNv 01:04:40,764 ERROR SiteDetectionUtil:47 MTS
EZ35Xum6eG 02:04:10,328 ERROR SiteDetectionUtil:47 MTS
pCxbg584le 02:04:21,236 ERROR SiteDetectionUtil:47 MTS
K3rPlPgIpb 03:04:50,529 ERROR SiteDetectionUtil:47 MTS
rRz4IW94mB 03:04:55,728 ERROR SiteDetectionUtil:47 MTS
Ir91iBSCUc 04:00:05,571 ERROR SiteDetectionUtil:47 MTS
jp00Sfavl5 04:00:15,489 ERROR SiteDetectionUtil:47 MTS
Ks5w1eP90F 04:00:40,794 ERROR SiteDetectionUtil:47 MTS

每小时匹配04

我只需要低于输出

Ir91iBSCUc 04:00:05,571 ERROR SiteDetectionUtil:47 MTS
jp00Sfavl5 04:00:15,489 ERROR SiteDetectionUtil:47 MTS
Ks5w1eP90F 04:00:40,794 ERROR SiteDetectionUtil:47 MTS
jkljkfhknk 04:00:41,768 ERROR SiteDetectionUtil:47 MTS

04小时日志

请帮帮我......

2 个答案:

答案 0 :(得分:1)

你可以试试这个,

grep " $(date --date='1 hour ago' '+%H').*MTS" /var/log/oss.log > oss.new.log

或者

grep "\s$(date --date='1 hour ago' '+%H').*MTS" /var/log/oss.log > oss.new.log

答案 1 :(得分:0)

之前添加一个空格,然后在grep部分添加一个“:”。 例如,grep 04:应该是日期命令的输出