linux / unix命令用于检查特定日志

时间:2013-08-26 21:46:33

标签: linux unix

如何根据具体时间范围提取日志?假设问题在下午4点到下午5点之间开始,我怎样才能在这些时间之间获得特定的日志?我可以使用lesscatgrep,但它不会向我提供错误的详细信息,示例命令:

grep "2013-08-26 16:00:00" sample.log

什么是更精确的Linux / Unix命令可以做到这一点?

2 个答案:

答案 0 :(得分:2)

要查看 16:00:00 17:00:00 之间的错误日志消息,请使用:

grep -nP '2013-08-15 16:.+ERROR' sample.log | less

如果您在日志中有多行消息,则可以使用-A n-B n参数为每个输出字符串添加n行之前或之后:

每行前后3行:

grep -A 3 -B 3 -nP '2013-08-15 16:.+ERROR' sample.log | less

相同的简写:

grep -3 -nP '2013-08-15 16:.+ERROR' sample.log | less  

答案 1 :(得分:1)

如果您知道问题发生在下午4点到5点之间,您可以使用:

grep "2013-08-26 16:" sample.log | less

如果你需要围绕这个问题的一些线,添加选项-N到grep(N行的上下文),类似的东西:

grep -3 "2013-08-26 16:" sample.log | less

如果您知道您的活动包含某些特定字词,则可以再使用一个grep过滤它:

grep -3 "2013-08-26 16:" sample.log | grep somethingelse