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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM