0

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

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

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

4

2 回答 2

2

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

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

如果您在日志中有多行消息,您可以使用-A n-B nparams 为每个输出字符串添加 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  
于 2013-08-27T09:58:07.257 回答
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
于 2013-08-27T09:14:11.513 回答