几种常用的linux日志查询命令含义
tail
:查询尾部日志
head
:查询头部日志
cat
:正序查看
-n
:显示行号
-f
:循环实时查看
|
:管道符,分隔多个命令
grep "key"
:查找包含key的位置
-i
:忽略大小写
一、tail命令
tail -f filename.log --循环实时查看所有日志
tail -fn 10 filename.log --循环实时查看最后10行日志
tail -n 10 filename.log --查看尾部最后10行日志
tail -n +10 filename.log --查看10行之后的所有日志
二、head命令
head-n 10 filename.log --查看文件中前10行日志
head -n -10 filename.log --查看除了最后10行外的所有日志
三、cat命令
常用:
cat -n filename.log | grep “关键字” --查看文件中包含“关键字的”日志并显示行号
其它:
cat filename.log | grep -C 5 ‘关键字’ --显示日志里匹配字串那行以及前后5行
cat filename.log | grep -B 5 ‘关键字’ --显示匹配字串及前5行
cat filename.log | grep -A 5 ‘关键字’ --显示匹配字串及后5行
应用场景
场景一:按时间查看
步骤一:首先要进行范围时间段内日志查询先查看是否在当前日之内存在
grep '11:07 18:29:20' filename.log
grep '11:07 18:31:11' filename.log
步骤二:时间范围内的查询
sed -n '/11:07 18:29:20/,/11:07 18:31:11/p' filename.log
场景二:按行号查看
用 grep 拿到的日志很少,我们需要查看附近的日志
步骤一:得到关键日志的行号,比如21
cat -n filename.log | grep “关键词”
步骤二:查看关键字行号附近行数
cat -n filename.log | tail -n +21| head -n 10
--tail -n +21:查询21行之后的日志
--head -n 10:在前面的查询结果里再查前10条记录
场景二:按关键字查看
tail -f filename.log | grep '关键字' --实时查询关键字日志,比如error
tail -n 20 filename.log | grep '关键字' --查询最后20行,并查找关键字
tail -f filename.log | grep '关键字' | more --过点空格键翻页
tail -f filename.log | grep '关键字' | --color -a2 --对结果进行标红,上下扩展两行