天天看點

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      
Linux 實時檢視日志檔案的 4 種方法

第二個例子就是 ​

​tailf​

​ 指令。它本身内建了 ​

​-f​

​ 參數,是以你無需再為它指定 ​

​-f​

$ sudo tailf /var/log/apache2/access.log      
Linux 實時檢視日志檔案的 4 種方法

通常 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      
Linux 實時檢視日志檔案的 4 種方法

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      
Linux 實時檢視日志檔案的 4 種方法

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      
Linux 實時檢視日志檔案的 4 種方法

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 實時檢視日志檔案的 4 種方法
  • 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}