Bash 如何获取最后N分钟的日志消息
我的日志采用以下格式:Bash 如何获取最后N分钟的日志消息,bash,logging,awk,Bash,Logging,Awk,我的日志采用以下格式: [2018-01-22T13:40:22,825][WARN ] message [2018-01-22T13:41:52,830][ERROR ] message [2018-01-22T13:45:27,831][WARN ] message 我需要写一个脚本,将检查是否有任何错误在过去5分钟。从我在网上发现的情况来看,类似这样的方法应该有效: awk -v d1="$(date --date="-5 min" "+%Y-%m-%dT%H:%M:%S")" -v d
[2018-01-22T13:40:22,825][WARN ] message
[2018-01-22T13:41:52,830][ERROR ] message
[2018-01-22T13:45:27,831][WARN ] message
我需要写一个脚本,将检查是否有任何错误在过去5分钟。从我在网上发现的情况来看,类似这样的方法应该有效:
awk -v d1="$(date --date="-5 min" "+%Y-%m-%dT%H:%M:%S")" -v d2="$(date "+%Y-%m-%dT%H:%M:%S")" '$0 > d1 && $0 < d2 || $0 ~ d2' log.txt
awk-v d1=“$(日期--date=“-5分钟”+%Y-%m-%dT%H:%m:%S”)“-v d2=“$(日期”+%Y-%m-%dT%H:%m:%S”)”“$0>d1&$0
但事实并非如此。我认为[可能会碍事?我还可以尝试什么?
Awk
解决方案:
示例log.txt
:
[2018-01-22T13:40:22,825][WARN ] message
[2018-01-23T00:38:37,830][ERROR ] message
[2018-01-22T13:45:27,831][WARN ] message
Awk
解决方案:
示例log.txt
:
[2018-01-22T13:40:22,825][WARN ] message
[2018-01-23T00:38:37,830][ERROR ] message
[2018-01-22T13:45:27,831][WARN ] message
你说得对,
[
正在碍事
词典比较,$0>d1
,比较如下内容:
[2018-01-22T13:45:27,831][WARN ] message
与
而[…
总是大于任何以数字开头的字符串,例如20..
类似地,$0
——但在这种情况下,条件永远不会满足([20..
始终大于20..
)。这就是您无法获得任何输出的原因
一个快速的“脏”修复方法是简单地格式化d1
和d2
以[
开头:
awk -v d1="$(date --date="-5 min" "+[%Y-%m-%dT%H:%M:%S")" -v d2="$(date "+[%Y-%m-%dT%H:%M:%S")" '$0 > d1 && $0 < d2' log
awk-v d1=“$(日期--date=“-5分钟”+[%Y-%m-%dT%H:%m:%S”)“-v d2=“$(日期”+[%Y-%m-%dT%H:%m:%S”)””'$0>d1&$0
你说得对,[
正在碍事
词典比较,$0>d1
,比较如下内容:
[2018-01-22T13:45:27,831][WARN ] message
与
而[…
总是大于任何以数字开头的字符串,例如20..
类似地,$0
——但在这种情况下,条件永远不会满足([20..
始终大于20..
)。这就是您无法获得任何输出的原因
一个快速的“脏”修复方法是简单地格式化d1
和d2
以[
开头:
awk -v d1="$(date --date="-5 min" "+[%Y-%m-%dT%H:%M:%S")" -v d2="$(date "+[%Y-%m-%dT%H:%M:%S")" '$0 > d1 && $0 < d2' log
awk-v d1=“$(日期--date=“-5分钟”+[%Y-%m-%dT%H:%m:%S”)“-v d2=“$(日期”+[%Y-%m-%dT%H:%m:%S”)””'$0>d1&$0
你已经看到这个了吗?@Black.Jack是的,这就是我开始工作的地方。但是我的格式不同,我无法让它工作。你已经看到这个了吗?@Black.Jack是的,这就是我开始工作的地方。但是我的格式不同,我无法让它工作。非常好,谢谢。我已经尝试添加了[但我在+…@tannerwj之前就做了,你也可以在ask I think-just'$0>”[“d1”例如在模式中。效果很好,谢谢。我曾尝试添加[但我在+…@tannerwj之前做过,你也可以在ask I think-just'$0>中连接它。”[“d1'例如在模式中。哇,这比我认为的awk可能的要多。我只是想将其导入grep并查找我一直在关注的错误。我可以修改它,这将有助于清理这比我认为的awk可能的多-那么你对什么是awk有一个重大误解:-)!哇,这比我用awk想象的要多。我只是想把它导入grep并查找我一直在关注的错误。不过我可以修改它,它将有助于清理这比我用awk想象的要多。
-那么你对什么是awk有很大的误解:-)!