系統日誌是管理員和開發人員在監控系統性能、解決問題和了解系統內部事件方面的重要資源。在本文中,我們了解了在Linux系統上,
journalctl
命令提供了一種有效的方式來訪問和管理這些日誌。
簡介:journalctl命令
journalctl
命令是一種工具,允許用戶查看和交互systemd日誌。這些日誌來自各種來源,例如內核、initrd、系統服務、應用程序和systemd本身。日誌以二進位格式存儲,並可以使用journalctl
有效地查詢。
journalctl
命令的基本語法如下:
journalctl [options…] [matches…]
使用journalctl查看和過濾日誌
最簡單的使用journalctl
的方法是不帶任何選項。這將按時間順序顯示所有日誌記錄:
$ journalctl
然而,輸出可能會令人不知所措,特別是在運行時間較長的系統上。為了使導航更容易,輸出會自動使用less命令進行分頁。使用回車鍵逐行滾動,或使用空格鍵逐頁滾動。要退出日誌輸出,請按鍵盤上的q。
要以反向時間順序查看日誌(即最新的條目先),請使用-r
選項:
$ journalctl -r
您可以通過使用-n
選項後跟要顯示的行數來限制顯示的日誌條目數量。例如,要查看最後15個條目:
$ journalctl -n 15
要僅查看與內核相關的消息,請使用-k
選項:
$ journalctl -k
也可以按優先順序篩選日誌。日誌級別從0(緊急情況)到7(調試)不等,數字越低表示優先順序越高。使用-p
選項查看特定級別及以上的日誌。例如,要查看錯誤、關鍵、警報和緊急日誌:
$ journalctl -p 3
要查看特定系統服務的日誌,請使用-u
標誌後跟服務名稱。例如,要查看Apache服務的日誌:
$ journalctl -u apache2.service
處理引導日誌
journalctl
命令允許用戶查看特定引導會話的日誌。每個引導都單獨記錄,因此很容易隔離與特定引導相關的日誌。要查看以前引導的所有日誌,請使用--list-boots
選項:
$ journalctl --list-boots
要查看上一次系統引導的日誌,請使用帶有數字-1
的-b
選項。指定不同的數字以查看舊引導的日誌:
$ journalctl -b -1
高級用法
您可以使用--since
和--until
選項查看特定時間段內的日誌。例如,要查看昨天的日誌:
$ journalctl --since yesterday
這些選項可以一起使用以指定特定的時間範圍。使用YYYY-MM-DD HH:MM:SS
日期格式以獲得精度:
$ journalctl --since 2023-04-05 08:00:00 --until 2023-04-05 12:00:00
要以JSON格式獲取日誌輸出,可以使用-o
選項和json
或json-pretty
:
$ journalctl -o json
或
$ journalctl -o json-pretty
要實時監視正在生成的日誌,請使用-f
選項,該選項類似於tail命令的-f選項:
$ journalctl -f
您還可以使用--disk-usage
選項檢查日誌文件佔用的磁碟空間:
$ journalctl --disk-usage
其他提示和選項
journalctl
命令提供了幾個附加選項來自定義日誌的顯示和導航:
- 使用
--no-page
選項以不分頁(即不使用less)的方式在終端中顯示日誌:
$ journalctl --no-page
- 要顯示所有日誌欄位,包括不可列印的欄位,請使用
--all
選項:
$ journalctl --all
- 默認情況下,
journalctl
命令以本地時區顯示日誌。但是,可以使用-u
選項指定其他時區:
$ journalctl -u apache2.service --utc
這裡是一些有用的journalctl
命令選項,但這只是冰山一角。請參閱man journalctl
以查看完整的選項列表和語法說明。