系统出现问题,需要快速定位日志文件错误信息,记录一些小技巧,方便运维。本文持续更新。
一、行号查找
例如查找问题行号是100,查看90-110行的日志
1. cat -n 文件 | grep "关键字" 查出关键字所在行号
2. cat -n 文件 | tail -n +90 | head -n 20
tail -n +90:从90行开始的所有行
head -n 20:前20行,也就是从90行到109行
二、时间查找
sed '/开始时间/, /结束时间/p' 文件
无论用什么方法,会出现查找出很多日志,使用more分页显示,例如 :
sed '/开始时间, /结束时间/p' 文件 | more
或者写入文件中,方便查看,例如:
cat -n 文件 | tail -n +90 | head -n 20 > ***.txt
三、补充
方法二在产线上使用搜索时间很长,可以用一种更普通的方法代替。
grep -n '20:45:23' ***.log 找到行号,再使用方法一。
四、zgrep
由于日志文件积累过多,需要压缩,而在产线上往往不能解压缩,因为权限问题,而且解压缩比较麻烦,zgrep提供了在不解压的情况下,查看压缩日志,先记录命令:
zgrep --binary-files=text '关键字' 压缩文件
如果zip压缩包很多的话,,用如下方法,找出包含关键字的压缩包:
zgrep --binary-files=text '关键字' *.zip
zip和tar压缩文件都是可行的。