做为码农这么多年,经常要做的事情就是查看服务器日志。平时在测试环境上小打小闹就算了,一上生产,面对每天的日志量到达几十G的日志,你要打开vi,就只能等着Ctrl+C取消操作一条道路,使用tail,访问量很大的服务器一直在跳跃,于是还是关掉了。
下面就我这几天进行的日志分析用到的命令做了一下总结。
1.日志分割(时间段):
sed -n '/2019-06-25 16:00:00/,/2019-06-25 16:10:00/'p info.log > 20190625160000.log
说明:将2019-06-25 16:00:00到2019-06-25 16:10:00这十分钟内的log找到出来另存到20190625160000.log这个文件中,前提条件是你每行日志前面都有具体时间,且格式是yyyy-MM-dd hh:mm:ss
2.日志查找(是否存在某个字段)
grep -o keyword 20190625160000.log | wc -l
说明:keyword是你输入的关键字,找到这个关键字在20190625160000.log文件里出现的次数,如果结果大于0,说明出现过,这时候就可以考虑截取日志出来了。
3.截取日志
grep -A 200 keyword 20190625160000.log > keyword.log
说明:-A -B -C 后面根阿拉伯数字分别代表显示它后面的n行,前面n行,前后各n行,这时候keyword.log应该很小了,如果还很大,就再进行筛选喽。可以下载过来美美的看起来了
4.日志关键字搜索跟踪
tail -fn200 info.log | grep keywords
说明:tail查看尾部文件 -f实时查看 grep后跟关键字,只查看特定关键字的日志
5.关键字查询标红
grep keywords info.log --color=always | grep otherkeywords
说明:grep主搜索,–color=always标注颜色 | grep otherkeywords在结果的基础上再搜索
6.查看.gz结尾的日志文件
zgrep exception youzan.log.gz | wc -l
zcat youzan.log.gz | grep exception | wc -l
本文总结了在海量服务器日志中快速定位问题的六个实用Linux命令,包括日志分割、查找、截取、关键字搜索跟踪及.gz日志查看,帮助码农提升日志分析效率。
836

被折叠的 条评论
为什么被折叠?



