Linux实时查看日志的四种命令详解

如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文件更改或不断更新时输出文件的内容。在Linux中实时显示文件内容的常用命令是tail命令(有效地管理文件)。

1. tail命令 - 实时监控日志

如上所述,tail命令是实时显示日志文件的最常用解决方案。但是,显示该文件的命令有两个版本,如下面的示例所示。

在第一个示例中,命令tail需要-f参数来跟踪文件的内容。

1

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

83aa50019f8e0bdb84a50b71394a6e5.png

实时监控Apache日志

该命令的第二个版本实际上是一个命令本身:tailf。你不需要使用该-f开关,因为该命令是与-f参数一起内置的。

1

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

41d88c9c0f722fa220a91f6e39e2830.png

实时Apache日志监控

通常,logrotate实用程序会在Linux服务器上频繁地轮换日志文件。要查看每日基础上轮换的日志文件,可以使用tail -F命令。

tail -F将跟踪正在创建的新日志文件,并开始跟踪新文件而不是旧文件。

1

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

但是,默认情况下,tail命令将显示文件的最后10行。例如,如果你只想实时查看日志文件的最后两行,请使用-n与该-f标志结合的文件,如下例所示。

1

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

5bfd02bd23fad6e4677c6b2dbfb5bd6.png

查看最后两行日志

2.multitail命令 - 实时监控多个日志文件

另一个有趣的实时显示日志文件的命令是multitail命令。该命令的名称意味着multitail实用程序可以实时监视和跟踪多个文件。Multitail还允许你在受监视的文件中来回导航。

要在基于Debian和RedHat的系统中安装mulitail实用程序,请发出以下命令。

1

2

3

$ sudo apt install multitail [On Debian&Ubuntu]

$ sudo yum install multitail [On RedHat&CentOS]

$ sudo dnf install multitail [On Fedora 22+ version]

要同时显示两个日志文件的输出,请执行以下示例中所示的命令。

1

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

e57af264bfd7c56ff411bd3222f31df.png

多点监控日志

3. lnav命令 - 实时监控多个日志文件

另一个有趣的命令,类似于multitail命令,是lnav命令。Lnav实用程序还可以观看和跟踪多个文件并实时显示其内容。

通过发出以下命令在基于Debian和RedHat的Linux发行版中安装lnav实用程序。

1

2

3

$ sudo apt install lnav [On Debian&Ubuntu]

$ sudo yum install lnav [On RedHat&CentOS]

$ sudo dnf install lnav [On Fedora 22+ version]

通过发出命令同时观察两个日志文件的内容,如下例所示。

1

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

c90df06c510790a59cbf892b850e89b.png

lnav - 实时日志监控

4. less命令 - 显示日志文件的实时输出

最后,如果键入,则可以使用less命令显示文件的实时输出Shift+F

与tail实用程序一样,Shift+F在打开的文件中按下less将在文件结束后开始。或者,你也可以用较少的+F旗帜开始进入现场观看文件。

1

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

1b2327c3d6726711f551f657415d87a.png

使用less命令监视日志

出处:https://blog.csdn.net/qq_33223299/article/details/93773989

========================================================================================

tailf 和 tail -f 的区别

    • tailf 总是从文件开头一点一点的读, 而 tail -f 则是从文件尾部开始读。
    • tailf check 文件增长时,使用的是文件名,用 stat 系统调用;而 tail -f 则使用的是已打开的文件描述符。注:tail 也可以做到类似跟踪文件名的效果;
    • 但是tail总是使用fstat系统调用,而不是stat系统调用;结果就是:默认情况下,当tail的文件被偷偷删除时,tail是不知道的,而tailf是知道的

本文介绍Linux下tail命令的使用方法。
linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。

一、tail命令语法

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。

二、tail命令使用方法演示例子

1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。

2、tail -n 20 filename
说明:显示filename最后20行。

3、tail -r -n 10 filename
说明:逆序显示filename最后10行。

补充:
跟tail功能相似的命令还有:
cat 从第一行開始显示档案内容。
tac 从最后一行開始显示档案内容。
more 分页显示档案内容。
less 与 more 相似,但支持向前翻页
head 仅仅显示前面几行
tail 仅仅显示后面几行
n 带行号显示档案内容
od 以二进制方式显示档案内容

查看tomcat日志
tail -f catalina.out
就可以查看Linux下启动tomcat时隐藏的输出日志,但是只能查看最后10行,ctrl+c可以退出

查看具体哪天的启动日志可以用 sh startup.sh && tail -f ../logs/catalina.2018-08-29.log

与window通信端口是否是通的 先在window是上安装telnet客户端,然后在cmd中用telnet 192.168.7.68 8081进行通信 

出处:https://www.cnblogs.com/yszr/p/12378291.html

您的资助是我最大的动力!
金额随意,欢迎来赏!
款后有任何问题请给我留言。

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我。(●'◡'●)

如果你觉得本篇文章对你有所帮助,请给予我更多的鼓励,求打             付款后有任何问题请给我留言!!!

因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【Jack_孟】!

原文地址:https://www.cnblogs.com/mq0036/p/14728143.html