拒绝蛮力,高效查看Linux日志文件! |
您所在的位置:网站首页 › 查看日志less › 拒绝蛮力,高效查看Linux日志文件! |
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介日常分析问题时,会频繁地查看分析日志,但如果蛮力去查看日志,耗时费力还不一定有效果,因此我总结了在Linux常用的一些日志查看技巧,提升日志阅读效率。 grep查找日志在我们查找某些异常日志时,经常需要同时查看异常前面或后面的一些日志,因为有时前面或后面的日志就已经标识出异常原因了,而grep的-A、-B、-C选项就提供了这种功能,如下: # 查找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 查看某个时间段的日志有时,需要查看某个时间段的日志,比如凌晨2点15分系统出现报警,上班后我们想看看这段时间的日志,看能不能找到点线索,方法如下: # 导出02:14到02:16分的日志 awk '/2022-06-24T02:14/,/2022-06-24T02:1[6-9]/' app.log > app0215.log # 使用sed也是可以的 sed -n '/2022-06-24T02:14/,/2022-06-24T02:1[6-9]/p' app.log > app0215.log注:awk与sed实际并不解析时间,它们只是按正则匹配,匹配到第一个正则时,开始输出行,直到遇到第二个正则关闭,所以如果你的日志中没有能匹配第二个正则的行,将导致一直输出到尾行!所以一般需要将第二个正则变宽松点,如上面的/2022-06-24T02:1[6-9]/,以避免出现这种情况 查看最后10条错误更多情况是,上班时发现系统有报警,于是想立马看看刚刚发生了什么,即查找最近的异常日志,如下: # 最容易想到的是tail,但有可能最后1000行日志全是正常日志 $ tail -n 1000 app.log | less # 最后10条异常, tac会反向读取日志行,然后用grep找到10个异常日志,再用tac又反向一次就正向了 $ tac app.log | grep -n -m10 ERROR | tac还有一种是从刚报警的时间点开始导出到尾行,比如从2分钟前的5点15分开始导出,如下: $ tac app.log | sed '/2022-06-24T17:15/q' | tac > app1715.log原理与上面类似,只不过是换成了sed,sed默认会输出处理的每一行,而q指令代表退出程序,所以上面程序含义是从日志末尾开始输出日志,直到遇到正则/2022-06-24T17:15/停止输出。 awk分段查找对于像Java程序,异常日志一般会是一段一段的,且每段带有异常栈,如下:
一般情况下,使用less可以更快速的查看日志,比如通过tail -n10000取出最近1w条日志,通过less查看,如下: tail -n 10000 app.log | less看日志时,有一个很常见的需求,就是很多日志都是当前不需要关心的,需要将它们过滤掉,less提供了&/的功能,可快速过滤掉不想看的日志,从而找到问题日志,如下:
less可以一行一行的排除,但如果要一段一段的排除,如日志中经常会有一些常见且无影响的错误日志,这种情况可以通过vim配合awk排除,如下: tail -n 10000 app_error.log | vim -
有时为节省磁盘空间,日志会压缩成*.gz格式,这也是可以直接查看的,如下: # 类似cat,同时解压并输出内容 zcat app.log.gz # 类似grep,同时解压并查找内容 zgrep -m 10 ERROR app.log.gz # 类似less,同时解压并查看内容 zless app.log.gz而在处理时间方面,dateutils工具包用起来会更方便一些,如下: # CentOS7安装dateutils $ wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/d/dateutils-0.4.9-1.el8.x86_64.rpm && rpm -Uvh dateutils-0.4.9-1.el8.x86_64.rpm # Ubuntu安装dateutils $ apt install dateutils # 根据时间范围过滤日志,可指定时间串格式 $ cat dmesg.log | dategrep -i '%a %b %d %H:%M:%S %Y' '>=2022-06-24T12:00:00 && |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |