绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Linux 实时查看日志文件的 4 种方法
2021-11-12 14:55:46
来源:GOPS 全球运维大会 2021 · 上海站

在 Linux 下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,常用的莫过于 tail 命令了。

1. tail Command – Monitor Logs in Real Time

如前所述,tail 命令是实时显示日志的常用的方法。不过该命令有两个版本,如下所示。

个例子是为 tail 命令加上 -f 参数。

$ sudo tail -f /var/log/apache2/access.log


第二个例子就是 tailf 命令。它本身内建了 -f 参数,因此你无需再为它指定 -f 参数。

$ sudo tailf /var/log/apache2/access.log


通常 Linux 服务器上的日志都是轮转日志。这种情况下,你需要用 -F 参数。

tail -F 会监控是否创建了新日志(所谓新日志指的是同一个名字,但是 fd 不一样的日志文件),并且会转而显示新日志的内容,而不是老文件的内容。

$ sudo tail -F /var/log/apache2/access.log

然而,默认情况下 tail 命令只会显示文件后 10 行的内容。如果你只想在实时模式下查看后两行的内容,那么可以连用 -n 和 -f 参数,如下这样:

$ sudo tail -n2 -f /var/log/apache2/access.log


2. Multitail Command – Monitor Multiple Log Files in Real Time

另一个好玩的命令是 Multitail Command。从名字中就能看出它可以实时监控多个日志,Multitail 还能让你前后翻阅被监控的文件。

使用下面命令可以在基于 Debian 或 RedHat 的系统中安装 Mulitail。

$ sudo apt install multitail   [On Debian & Ubuntu]$ sudo yum install multitail   [On RedHat & CentOS]$ sudo dnf install multitail   [On Fedora 22+ version]

下面例子演示了如何同时显示两个日志文件。

$ sudo multitail /var/log/apache2/access.log /var/log/apache2/error.log


3. lnav Command – Monitor Multiple Log Files in Real Time

另一个类似 Multitail 的命令是 Lnav,Lnav 也能实时监控多个文件。

使用下面命令可以在基于 Debian 或 RedHat 的系统中安装 Lnav。

$ sudo apt install lnav   [On Debian & Ubuntu]$ sudo yum install lnav   [On RedHat & CentOS]$ sudo dnf install lnav   [On Fedora 22+ version]

使用 Lnav 同时查看两个日志的方法如下:

$ sudo lnav /var/log/apache2/access.log /var/log/apache2/error.log


4. less Command – Display Real Time Output of Log Files

后你可以用 less 命令 查看日志文件,然后按下 Shift+F 也能实时查看日志内容。

tail 一样, 在 less 中按下 Shift+F 会追踪文件末尾的内容。你也可以在调用 less 命令时就加上 +F 参数。

sudo less + F /var/log/apache2/access.log


下面是其他一些关于日志监控与管理的文章,值得一读。

  • Manage Files Effectively using head, tail and cat Commands in Linux

  • How to Setup and Manage Log Rotation Using Logrotate in Linux

  • Petiti – An Open Source Log Analysis Tool for Linux SysAdmins

  • How to Query Audit Logs Using ‘ausearch’ Tool on CentOS/RHEL

  • Manage Log Messages Under Systemd Using Journalctl {Comprehensive Guide}




分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~