侧边栏壁纸
博主头像
笑凡尘

让人非我弱,得志莫离群

  • 累计撰写 68 篇文章
  • 累计创建 75 个标签
  • 累计收到 2 条评论
隐藏侧边栏

教你一些查看服务器日志的正确姿势(知识)

笑凡尘
2021-11-23 / 0 评论 / 0 点赞 / 7 阅读 / 1,499 字
温馨提示:
本文最后更新于2021-11-23,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

嘿,boy,你平时在排查日志的时候,是用什么方法查看的呢?是不是第一反应就是cattailvim

众所周知,作为一个后端开发,目前几乎所有的项目都是部署在Linux服务器上,那么查看问题和分析日志就是我们日常的常规操作之一了。如果说你会用cat或者tail那还好,如果用的是vim那可能会直接导致服务器崩溃。原因是vi或vim打开文件的时候,会把文件所有内容加载到内存中,如果你打开的日志文件很小没有关系,如果是几十上百个G的文件,那你的服务器就是崩溃瘫痪掉,所以一起来学一学查看日志的正确姿势(知识)。

一、cat

帮助文档

cat方式可以查看整个文件的内容,在服务器中敲命令cat --help获取帮助信息如下:

cat --help

从上面的图中可以看出,共计有[A,b,e,E,n,s,t,T,u,v]几个参数:

  • -A:这个是整合了-vET三个参数,能展示出一些不是空白的特殊字符
  • -b:列出行号,空白行没有行号
  • -e:整合了-vE
  • -n:列出行号,空白行有行号
  • -s:不显示重复的空行,多个空行只显示一个空行
  • -t:整合了-vT
  • -T:把TAB字符转换成^I展示
  • -v:显示不能打印的字符,比如转义字符

使用方法

cat [参数]... [文件]

例如:cat -n test.log

cat 文件

注意

不建议使用cat来查看日志,如果日志数量少还好,如果数量多,cat是一路展示到文件末尾,就像这样,阅读及其不方便。

cat 100000

还有一个比较有意思的命令tac,你没看错,一个跟cat命令相反的命令,它不光看起来跟cat是反着的,它展示出来的日志也是从最后一行开始的。

二、more

帮助文档

使用more --help查看帮助文档:

more --help

关于more的用法,主要有几个选项记住即可:

  • Space(空格):向下翻页
  • Enter(回车):向下一行
  • /字符串:向下搜索这个关键字
  • f:显示文件名以及当前所在的行号
  • q:退出预览
  • b或ctrl + b:向上翻页

使用方法

more [文件]

注意

more的命令如上面提到的f或q就如同vim命令一般,在预览模式下才可以使用。

more test.log

三、less

帮助文档

less --help

个人的意愿还是比较喜欢less 的,因为它上下翻页我觉得更人性化:

  • [PageUp]:向上翻页(别说你键盘没有,我不信)
  • [PageDown]:向下翻页(别说你键盘没有,我不信)
  • /字符串:当前位置向下查找对应的字符串
  • ?字符串:当前位置向上查找字符串
  • n:重复前一个查找,与/或?有关, 比如前一个命令是?表示向上查找,此时n会向上查找
  • N:反向重复前一个查找
  • g:跳转到文件的第一行
  • G:跳转到文件的最后一行
  • q:退出文件的预览模式

使用方法

less [文件]

less test.log

注意

less的命令如上面提到的more一般,在预览模式下才可以使用。

四、head

这个东西从名字就可以看的出来,就是取数据前多少行。 一般都是跟-n一起用的。

当指定的行数为负数-x时,则会打印出除了后面x行的其他所有数据。

使用方法

head -n 行数 [文件]

head -n

注意

这玩意几乎没人用吧,应该说很少有用到的时候。

五、tail

这个东西我也挺喜欢,从文件尾部截取数据, 多数的时候我跟-f一起用,可以一直刷新尾部最新数据,就相当于在查看实时日志。

帮助文档

tail --help

tail --help

别看参数多,很多参数几乎用不到:

  • -f:循环读取,一直刷新尾部数据
  • -q:不显示处理信息
  • -v:显示详细处理信息
  • -c <数目>:显示的字节数
  • **-n <行数>:显示文件尾部的n行内容

使用方法

正常的时候是:

# 默认不加行数的时候,是后10行
tail [文件]

大多数的时候我是开两个终端窗口,一个运行,一个查看实时日志:

tail -f [文件]

# centos对这个进行过优化,可以直接这么写:
tailf [文件]
0

评论