linux查看系统日志常见命令以及方法

在日常工作中,为了排查定位问题,经常需要登录到linux系统,查看异常error日志,本文列举一些常见命令。

一、head

head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。

命令格式:
head [参数] [文件]

参数:
-n<行数> 显示的行数。

  1. 显示 service.log 文件的前20行日志
head -n 20 service.log

二、tail

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 内容更新就可以看到最新的文件内容。

命令格式:
tail [参数] [文件]

参数:

-f 循环读取
-n<行数> 显示文件的尾部 n 行内容

  1. 实时读取 service.log 日志文件的更新内容
tail -f service.log

此时会一直实时刷新日志,crtl + c 跳出

  1. 显示 service.log 日志文件最后20行内容
tail -n 20 service.log
or
tail -n -20 service.log
  1. 显示 service.log 日志文件第 20 行至文件末尾
tail -n +20 service.log

三、cat

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

命令格式:
cat [参数] [文件]

参数:

-n 或 --number:由 1 开始对所有输出的行数编号。

  1. 查看 service.log 日志文件所有内容,并显示行号
cat -n service.log

四、grep

Linux grep 命令用于查找文件里符合条件的字符串。

命令格式:
grep [参数] [范本样式] [文件或目录…]

参数:

-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容
–color=auto : 高亮颜色显示
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
-i 或 --ignore-case : 忽略字符大小写的差别
-e<范本样式> 或 --regexp=<范本样式> : 根据正则表达式匹配文件中对应的行

  1. 查看 service.log 日志文件中匹配指定字符串的行
grep '被查找的字符' service.log
  1. 查看 service.log 日志文件中匹配指定字符串的行(不区分大小写)
grep -i '被查找的字符' service.log
  1. 查看 service.log 日志文件中与正则表达式匹配的行
grep -e '正则表达式' service.log
  1. 查看 service.log 日志文件中,除了显示符合样式的那一行之外,并显示该行之前以及之后的内容
grep -C 10 '被查找的字符' service.log
  1. 查看 service.log 日志文件中满足样式的行,高亮显示
grep --color=auto '被查找的字符' service.log

五、查看日志的方法

  1. 第一种方式

先根据关键字定位行数,之后查看对应行数对应的日志信息

定位关键字所在行数,例如关键字为:error

cat -n service.log | grep 'error'

命令返回结果如下:

   812  2021-11-17 at 10:10:10.239 CST | ERROR | ...XXX...
   813  2021-11-17 at 10:10:10.239 CST | ERROR | ...XXX...

然后执行如下命令,输出812行以及之后的9行,一共10行数据

cat service.log | tail -n +812 | head -n 10

命令解释:
tail -n +812 : 从812行开始展示
head -n 10 : 显示前面10行

  1. 第二种方式

查看关键字"error"前后10行数据,并高亮显示

cat service.log | grep -C 10 --color=auto 'error'

引用:
1.https://www.runoob.com/linux/linux-command-manual.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐