6大Linux命令线上日志排查
- tail命令
- cat命令
- grep命令
- split命令
- sed命令
- head命令
1、tail命令
1、查看实时日志
tail -f info.log
2、分页查看前1000行日志
执行命令后,将逐页看到"info.log"
文件的内容,按下空格键可以向下翻页,按下"q"键可以退出分页查
tail -n 1000 info.log |more
3、显示info.log最后20行
tail -n 20 info.log
4、倒序显示info.log最后10行
tail -r -n 10 info.log
2、cat命令
1、分页查看所有日志
将名为"info.log"的文件的内容输出到终端,并使用分页器"more"进行分页显示。这样可以逐页查看文件的内容。
执行命令后,将逐页看到"info.log"文件的内容,按下空格键可以向下翻页,按下"q"键可以退出分页查看模式。
cat info.log | more
2 它的作用是在名为"info.log"的文件中搜索包含"关键字"的行,并显示包含关键字的行和之前的10行以及之后的10行。
cat info.log | grep -n -B10 -A10 "关键字"
3、查看日志,从第1000行开始,显示500行
cat info.log |tail -n +1000|head -n 500
4、查看日志,显示1350行到1400行
cat info.log | head -n 1400| tail -n +1350
3、grep命令
1、在名为"info.log"的日志中搜索包含"parttern"关键字的行,并显示匹配行以及每个匹配行前后5行内容
grep -5 ‘parttern’ info.log
2、在名为"info.log"的日志中搜索包含"parttern"关键字的行,并显示匹配行以及每个匹配行前后各5行的内容(提供了匹配行前后的更多上下文信息)
grep -C 5 ‘parttern’ info.log
3、在名为"info.log"的日志中搜索包含"parttern"关键字的行,并显示匹配行以及每个匹配行之后的5行的内容
grep -A 5 ‘parttern’ info.log
4、在名为"info.log"的日志中搜索包含"parttern"关键字的行,并显示匹配行以及每个匹配行之前的5行的内容
grep -B 5 ‘parttern’ info.log
5、关键字加颜色显示
此命令将搜索'pattern'并显示匹配行及其前后各5行的内容,并使用颜色突出显示关键字
rep --color -C 5 'pattern' info.log
4、split命令
1、日志文件太大,对日志文件按行数切割查看
split -l 50000 info.log newfile_ --verbose
执行该命令后,会将info.log
文件拆分为多个新文件,每个文件包含50000
行,并显示拆分过程的详细信息。新文件的命名规则为newfile_
后接一个后缀序号,例如newfile_aa
、newfile_ab
、newfile_ac
等。
- split: split命令用于拆分文件。
-l 50000
: 使用-l选项指定每个拆分文件包含的行数为50000行。info.log:
要拆分的原始文件名。newfile_
: 拆分后的新文件的前缀名。每个新文件将以该前缀名开头,并在末尾添加一个后缀序号。--verbose
: 使用--verbose
选项显示拆分过程的详细信息,包括拆分后的文件名和大小等。
2、日志文件太大,对日志文件按大小切割查看
split -b 40m info.log -d newfile_ --verbose
执行该命令后,会将info.log文件拆分为多个新文件,每个文件大小为40m
5、sed命令
1、删除info.log日志文件内包括“关键词”的行
sed -i '/关键词/d' info.log
2、截取日志一个时间段内的日志到临时文件内
sed -n '/2024-04-24 18:47/,/2024-04-24 18:50/p' info.log > tmp.log
- sed: sed命令用于对文本进行处理和转换。
-n
: 使用-n选项表示只输出经过特定处理的结果,不进行默认的行输出。'/2024-04-24 18:47/,/2024-04-24 18:50/p':
这是sed的地址范围表达式,表示选择从匹配"2024-04-24 18:47"开始到匹配"2024-04-24 18:50"结束之间的行。- info.log: 要处理的原始文件名。
> tmp.log
: 使用重定向符号将处理结果输出到tmp.log文件中。
执行该命令后,会从info.log文件中提取出时间范围为2024-04-24 18:47到2024-04-24 18:50之间的行,并将结果保存到tmp.log文件中
6、head命令
1、查询日志文件中的头10行日志
head -n 10 info.log
2、查询日志文件除了最后10行的其他所有日志
head -n -10 info.log`