tail
tail -f nohup.log
# 单个
tail -f test.log | grep "206"
# 多个字段
tail -f test.log | grep "206|Kafk"
# 在末尾追加|$,日志便可以输出所有,意思是匹配到的日志就高亮,匹配不到的则正常输出
tail -f test.log | grep -E "206|Kafk|$"
tail -f test.log | grep -E ".*206.*|Kafk|$"以条件内容206为例,在原来的基础上用.*包裹条件内容,那么输出的格式就是匹配到的条件整行都高亮展示
grep
| 参数 |
作用 |
-B N |
匹配行之前的 N 行(Before) |
-A N |
匹配行之后的 N 行(After) |
-C N |
匹配行上下共 N 行(Context) |
-i |
忽略大小写 |
-H |
显示匹配的文件名 |
-r |
递归搜索目录下所有文件 |
# 查找ERROR日志,以及它的后10行
$ grep -A 10 ERROR app.log
# 查找ERROR日志,以及它的前10行
$ grep -B 10 ERROR app.log
# -C代表前10行和后10行
$ grep -C 10 ERROR app.log
# 查找 NullPointerException,并显示后面 50 行
grep -A 50 "java.lang.NullPointerException" a.log
# zgrep 是专门处理 .gz 的 grep,它的功能和 grep 完全一样,无需手动解压
zgrep -H -A 50 "java.lang.NullPointerException" *.gz
# 统计异常数量(快速判断异常是否频繁)
grep -c "java.lang.NullPointerException" *.log
# 实时监控 a.log 文件的新增内容,并只显示包含 "java.lang.NullPointerException" 的行及其后50行
tail -f a.log | grep -A 50 "java.lang.NullPointerException"