首頁 > 套件與系統管理 > journalctl

journalctl:實時查看系統日誌

journalctl 是用於查詢和分析 systemd 日誌(Journal)的強大工具。特別是使用 `-f` 選項時,它可以實時跟蹤新的日誌條目,這對於診斷系統問題或監控應用程式行為非常有用。它類似於傳統的 `tail -f` 命令,但利用 systemd 日誌的結構化數據提供了更強大的過濾和搜索功能。

概述

journalctl 是用於查詢 systemd 日誌(Journal)的命令,systemd 是基於 systemd 系統的集中式日誌管理系統。`-f` 選項是 'follow' 的縮寫,它會在每次有新日誌條目寫入日誌時立即在螢幕上顯示,從而實現實時監控。這在伺服器管理、應用程式調試、系統事件追蹤等各種場景下都是必不可少的功能。

主要特點

  • 實時日誌跟蹤 (-f)
  • 按 systemd 服務過濾
  • 按日誌級別過濾
  • 基於時間的日誌查詢
  • 利用結構化日誌數據

主要選項

journalctl 提供了多種選項,可以精細控制日誌的查詢方式。特別是了解與 `-f` 一起使用的選項,可以實現高效的日誌分析。

實時跟蹤與過濾

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`journalctl` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

介紹使用 journalctl -f 進行各種實時日誌監控的方法。

實時跟蹤所有系統日誌

journalctl -f

實時查看所有系統日誌。

實時跟蹤特定服務日誌

journalctl -f -u nginx.service

僅實時跟蹤 `nginx.service` 單元的日誌。

實時跟蹤錯誤和警告日誌

journalctl -f -p err

僅實時跟蹤錯誤(err)或更高級別優先級的日誌。

同時跟蹤多個服務日誌

journalctl -f -u sshd.service -u cron.service

同時實時跟蹤多個服務的日誌。

從特定時間點開始跟蹤日誌

journalctl -f --since "1 hour ago"

從一小時前開始顯示日誌並開始實時跟蹤。

提示與注意事項

使用 journalctl -f 時的實用提示和注意事項。

實用提示

  • 停止日誌跟蹤:按 `Ctrl+C` 可以停止實時日誌跟蹤。
  • 進一步過濾:可以使用 `grep` 和管道符(|)對輸出的日誌進行進一步過濾。例如:`journalctl -f | grep "error"`
  • 游標移動:可以使用 `PageUp`/`PageDown` 鍵滾動,按 `End` 鍵可以移動到最新日誌。
  • 日誌顏色:`journalctl` 默認會根據日誌級別顯示不同的顏色,以提高可讀性。

注意事項

journalctl -f 不會消耗大量系統資源,但在日誌生成非常頻繁的環境中,終端輸出可能會過於龐大。如有必要,建議使用 `-u` 或 `-p` 選項進行過濾以減輕負載。



相同類別命令