在 Linux 下如何才能實時查看日誌內容呢?有不少工具能夠幫助咱們在文件持續修改的同時輸出文件內容,最經常使用的莫過於 tail 命令 了。程序員
1. tail Command – Monitor Logs in Real Time
如前所述, tail 命令是實時顯示日誌的最經常使用的方法。不過該命令有兩個版本,以下所示。apache
第一個例子是爲 tail 命令加上 -f 參數。服務器
$ sudo tail -f /var/log/apache2/access.log
第二個例子就是 tailf 命令。它自己內建了 -f 參數,所以你無需再爲它指定 -f 參數。less
$ sudo tailf /var/log/apache2/access.log
一般 Linux 服務器上的日誌都是輪轉日誌。這種狀況下,你須要用 -F 參數。工具
tail -F 會監控是否建立了新日誌(所謂新日誌指的是同一個名字,可是 fd 不同的日誌文件),而且會轉而顯示新日誌的內容,而不是老文件的內容。spa
$ 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 還能讓你先後翻閱被監控的文件。code
使用下面命令能夠在基於 Debian 或 RedHat 的系統中安裝 Mulitail。blog
$ sudo apt install multitail [On Debian & Ubuntu] $ sudo yum install multitail [On RedHat & CentOS] $ sudo dnf install multitail [On Fedora 22+ version]
下面例子演示瞭如何同時顯示兩個日誌文件。ip
$ 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私房菜》