本文已参与「新人创作礼」活动,一起开启掘金创作之路。
以查询日志 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
上述命令的查询结果如下图:
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
上述命令的查询结果如下图:
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
上述命令的查询结果如下图:
使用该命令的注意事项:
- 起止时间和终止时间是日志文件中有的时间,如果没有,查不到结果,结果如下图:
3. grep 查询同时满足两个条件
两个 grep 用 | 连接,查询出来的内容是 即有 2022-04-25 又有 exception 的
cat logs/worker.log | grep 2022-04-25 | grep exception
为了方便展示,只显示了其中5行数据。