- linux查看系统日志常见命令以及方法
- 一、head
- 二、tail
- 三、cat
- 四、grep
- 五、查看日志的方法
linux查看系统日志常见命令以及方法
在日常工作中,为了排查定位问题,经常需要登录到linux系统,查看异常error日志,本文列举一些常见命令。
一、head
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
命令格式:
head [参数] [文件]
参数:
-n<行数> 显示的行数。
- 显示 service.log 文件的前20行日志
head -n 20 service.log
二、tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 内容更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]
参数:
-f 循环读取
-n<行数> 显示文件的尾部 n 行内容
- 实时读取 service.log 日志文件的更新内容
tail -f service.log
此时会一直实时刷新日志,crtl + c 跳出
- 显示 service.log 日志文件最后20行内容
tail -n 20 service.log
or
tail -n -20 service.log
- 显示 service.log 日志文件第 20 行至文件末尾
tail -n +20 service.log
三、cat
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
命令格式:
cat [参数] [文件]
参数:
-n 或 --number:由 1 开始对所有输出的行数编号。
- 查看 service.log 日志文件所有内容,并显示行号
cat -n service.log
四、grep
Linux grep 命令用于查找文件里符合条件的字符串。
命令格式:
grep [参数] [范本样式] [文件或目录…]
参数:
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容
–color=auto : 高亮颜色显示
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
-i 或 --ignore-case : 忽略字符大小写的差别
-e<范本样式> 或 --regexp=<范本样式> : 根据正则表达式匹配文件中对应的行
- 查看 service.log 日志文件中匹配指定字符串的行
grep '被查找的字符' service.log
- 查看 service.log 日志文件中匹配指定字符串的行(不区分大小写)
grep -i '被查找的字符' service.log
- 查看 service.log 日志文件中与正则表达式匹配的行
grep -e '正则表达式' service.log
- 查看 service.log 日志文件中,除了显示符合样式的那一行之外,并显示该行之前以及之后的内容
grep -C 10 '被查找的字符' service.log
- 查看 service.log 日志文件中满足样式的行,高亮显示
grep --color=auto '被查找的字符' service.log
五、查看日志的方法
- 第一种方式
先根据关键字定位行数,之后查看对应行数对应的日志信息
定位关键字所在行数,例如关键字为: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行
- 第二种方式
查看关键字"error"前后10行数据,并高亮显示
cat service.log | grep -C 10 --color=auto 'error'
引用:
1.https://www.runoob/linux/linux-command-manual.html
更多推荐
linux查看系统日志常见命令以及方法
发布评论