1. 程式人生 > 實用技巧 >Linux 下 4 種實時監控日誌檔案方法,總有一種是你喜歡的

Linux 下 4 種實時監控日誌檔案方法,總有一種是你喜歡的

在 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

總結

關注公眾號:程式設計師白楠楠。獲取:《鳥哥的Linux私房菜》

來源:SEO屌絲