使用场景
查询日志时,想查询某段时间内某个关键字出现的频率,以判断该问题对线上用户的影响
解决方法
1. 跨天查询
日志一般一天保存一个.gz格式的文件,当跨天查询的时候,可以使用如下命令:
# 查询2019.11.2--2019.11.18号之间的"导出错误"的日志记录
$ zgrep "导出错误" test.log.info.2019-11-1[2-8] | more
# 查询2019.11.2--2019.11.18号之间的"导出错误"出现的频数
$ zgrep "导出错误"test.log.info.2019-11-1[2-8] | wc -l
2. 查询某天、某段时间
# 查询2019.11.17 11:30 -17:40 号之间的"执行【5695】开始服务异常"的日志记录
$ sed -n '/2019-11-17 11:00/, /2019-11-17 17:40/p' test.log.info | grep "执行【5695】开始服务异常" | more
# 查询2019.11.17 11:30 -17:40 号之间的"执行【5695】开始服务异常"出现的频数
$ sed -n '/2019-11-17 11:00/, /2019-11-17 17:40/p' test.log.info | grep "执行【5695】开始服务异常" | wc -l
网友评论