前言
对于软硬件系统运行出现的问题,当我们不能直观的判断出问题原因时,往往是通过日志来进行排查确定问题原因,对于不是很熟悉系统的人,有时候不知道日志在什么位置,有时候又不能快速定位到我们所需要的日志。
因此,我总结了下日志文件快速定位及日志内容查找的常用linux命令,帮助与我们在日志分析过程中,快速的过滤出自己所需要的日志内容进行分析,来提高问题原因定位及解决问题的效率。
快速定位日志文件位置
根据文件名模糊查找文件位置
find ./ -name "*关键字*"
根据文件名后缀查找文件位置
find ./ -name "*.log"
根据文件名模糊查找文件且文件内包含指定关键字的文件位置
find ./ -name "*.log" | xargs grep "关键字" -l
根据文件名模糊查找文件且按最近修改时间排序
find ./ -name "*.log" | xargs ls -lt
快速获取所需日志内容
根据关键字查找指定文件并展示匹配内容
grep "关键字" filename.log
根据关键字查找指定文件并展示匹配内容的前后几行内容
grep -B 5 "关键字" filename.log # 显示关键字内容以及前5行内容
grep -A 5 "关键字" filename.log # 显示关键字内容以及后5行内容
grep -C 5 "关键字" filename.log # 显示关键字内容以及前后5行内容
根据同时包含多个关键字(并关系)查找指定文件并展示匹配的内容
cat filename.log |grep "关键字1"|grep "关键字2"
根据多个关键字(或关系)查找指定文件并展示匹配的内容
egrep "关键字1|关键字2" filename.log
将查找出来的内容输入到指定文件中
egrep "关键字1|关键字2" filename.log > newfilename.log
说明:
文中使用的grep支持基础正则表达式,egrep支持可扩展的正则表达式;
代码中的关键字遵循正则表达式,如有特殊字符,需要用反斜杠进行转义,如关键字包含"[",可写成“\[”。