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

用于检查特定日志的linux/unix命令,linux,unix,Linux,Unix,如何根据特定的时间范围提取日志?假设问题是在下午4点到5点之间开始的,那么在这两个时间之间,我如何获取特定的日志?我可以使用less或cat或grep但它不会给出错误的详细信息,示例命令: grep "2013-08-26 16:00:00" sample.log 什么更精确的Linux/Unix命令可以做到这一点?如果您知道问题发生在下午4点到5点之间,您可以使用以下命令: grep "2013-08-26 16:" sample.log | less 如果您需要关于该问题的一些行,请将选

如何根据特定的时间范围提取日志?假设问题是在下午4点到5点之间开始的,那么在这两个时间之间,我如何获取特定的日志?我可以使用
less
cat
grep
但它不会给出错误的详细信息,示例命令:

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

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

如果您知道问题发生在下午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

如果您知道问题发生在下午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

要查看16:00:0017: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  

要查看16:00:0017: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  

此日志文件中的条目是什么样子的?没有。您必须在grep中使用正则表达式来处理所需的时间范围。同样,上面的grep示例是不正确的。您将在文件“16:00:00”和“sample.log”中查找术语
2013-08-26
。如果您的搜索项包含空格,则整个搜索项必须用引号括起来,或转义空格。您可以连接greps:
grep“2013-08-26 16:00:00”sample.log | grep ERROR
@Marc B现在编辑…我错过了…@alfasin是的,我肯定可以这么做,谢谢你的建议,但问题是它只会显示有
错误的行
,我想要的是在特定的时间范围内获得错误的详细信息。这个日志文件中的条目是什么样子的?没有。您必须在grep中使用正则表达式来处理所需的时间范围。同样,上面的grep示例是不正确的。您将在文件“16:00:00”和“sample.log”中查找术语
2013-08-26
。如果您的搜索项包含空格,则整个搜索项必须用引号括起来,或转义空格。您可以连接greps:
grep“2013-08-26 16:00:00”sample.log | grep ERROR
@Marc B现在编辑…我错过了…@alfasin是的,我肯定可以这么做,谢谢你的建议,但问题是它只会显示有
错误的行
我想要的是在特定的时间范围内获得错误的详细信息。