工作中查看日志得方法:
记录一下
grep -v -E 'IDLE| PING' production.log-$(date +%Y%m%d) | grep --color=always -E -C10 '\[ERROR\]\:|\[FATAL\]\:' | less
命令解释:
grep命令中 -v 是排除命令,意思即不包含
-E 用来扩展选项为正则表达式。 如果使用了grep 命令的选项-E,则应该使用 | 来分割多个pattern,以此实现OR操作。
production.log-$(date +%Y%m%d) 即需要查看得目标文件 其中文件名后面加得-$(date +%Y%m%d) 为文件名后缀,即当前日期比如production.log-20210321
所以前面部分命令为,将production.log-20210321文件中 含有 "IDLE' 或者 "PING" 得行去掉
grep命令中 -C:
-A -B -C 后面都跟阿拉伯数字
-A是显示匹配后和它后面的n行。
-B是显示匹配行和它前面的n行。
-C是匹配行和它前后各n行。
总体来说,-C覆盖面最大。用它保险些。哈哈。这3个开关都是关于匹配行的上下文的(context)。
所以这里得 grep -C10, 即显示匹配行以及其前后10行
最后再用less 命令查看所选内容
总结一下, 这条命令就是过滤出目标文件中不包含 "IDLE' 或者 "PING" ,但是包含[ERROR]或者 [FATAL] 的内容,并显示该行前后10行的内容, 并通过less命令查看