跳转至

6大Linux命令线上日志排查

  1. tail命令
  2. cat命令
  3. grep命令
  4. split命令
  5. sed命令
  6. 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_aanewfile_abnewfile_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`