我有一个日志'test.log',并且我只想输出最近24小时或当前日期(从午夜开始)的行出现'错误'一词。搜索过去24小时或当前日志中的错误
日志与比赛的内容,如下所示:
周三3月22日4点20分05秒UTC 2017年 - 错误 - 出了问题。请检查。
我曾尝试以下,但代替过去24小时内,我收到这里所说的“错误”出现在日志中的所有行。
awk -v d="$(date -d '24 hours ago' +'%a %b %d %T %Z %Y')" '$1" "$2>=d &&/ERROR/' test.log
我也试过
awk -v d="$(date -d 'today' +'%a %b %d %T %Z %Y')" '$1" "$2>=d &&/ERROR/' test.log
和
awk -v d="$(date -d '1 day ago' +'%a %b %d %T %Z %Y')" '$1" "$2>=d &&/ERROR/' test.log
具有相同的结果。
我需要这个工作,而不必给它我正在寻找的确切日期,因为它将在cron中设置为查找过去24小时(或自午夜以来)的ERROR行并将输出发送到我。
谢谢!
使用一个健全的格式为你的时间戳。另外,在读取日志文件时使用'-'作为分隔符。 –