Linux 下查询日志

335 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

以查询日志 master.log 为例(因为我实际测试时使用的日志文件是在 logs 文件下的,所以实际查询时用的路径和举例用的路径不一样)

1. 查询某个时间点

grep 命令 - 精准查询

grep 命令 + 正则表达式,进行精准查询

 # 查询 2022.03.23 16点43分的日志
 cat master.log | grep '2022-03-23 16:43'
 # 另一种写法
 grep '2022-03-23 16:43' master.log

上述命令的查询结果如下图:

image-20220323165918056

2. 查询某个时间段

grep 命令 - 精准查询

grep 命令 + 正则表达式,进行精准查询

 # 查询 2022.03.23 16点20分-40分之间的日志
 cat master.log | grep '2022-03-23 16[2-4]'
 # 另一种写法
 grep '2022-03-23 16[2-4]' master.log

上述命令的查询结果如下图:

image-20220323165621945

sed 命令 - 模糊查询

sed -n 进行模糊查询

 # sed -n '/起止时间/,/终止时间/p'
 cat master.log | sed -n '/2022-03-23 16:21:*/, /2022-03-23 16:43:*/p'
 # 另一种写法
 sed -n '/2022-03-23 16:21:*/, /2022-03-23 16:43:*/p' master.log

上述命令的查询结果如下图:

image-20220323171101837

使用该命令的注意事项:

  • 起止时间和终止时间是日志文件中有的时间,如果没有,查不到结果,结果如下图:

image-20220323172448103

3. grep 查询同时满足两个条件

两个 grep| 连接,查询出来的内容是 即有 2022-04-25 又有 exception

 cat logs/worker.log | grep 2022-04-25 | grep exception

为了方便展示,只显示了其中5行数据。

image-20220425145938649.png