JOURNALCTL(1) | journalctl | JOURNALCTL(1) |
NAME
journalctl - 檢索 systemd 日誌
SYNOPSIS
journalctl [OPTIONS...] [MATCHES...]
描述
journalctl 可用於檢索 systemd(1) 日誌(由 systemd-journald.service(8) 記錄)。
如果不帶任何引數直接呼叫此命令, 那麼將顯示所有日誌內容(從最早一條日誌記錄開始)。
如果指定了 [MATCHES...] 引數, 那麼輸出的日誌將會按照 [MATCHES...] 引數進行過濾。 MATCHE 必須符合 "FIELD=VALUE" 格式 (例如 "_SYSTEMD_UNIT=httpd.service" ), 參見 systemd.journal-fields(7) 手冊以瞭解日誌欄位的詳細介紹。 如果有多個不同的欄位被 [MATCHES...] 引數匹配, 那麼這些欄位之間使用"AND"邏輯連線, 也就是,日誌項必須同時滿足全部欄位的匹配條件才能被輸出。 如果同一個欄位被多個 [MATCHES...] 引數匹配, 那麼這些匹配條件之間使用"OR"邏輯連線, 也就是對於同一個欄位,日誌項只需滿足任意一個匹配條件即可輸出。 最後, "+" 字元可用作 [MATCHES...] 組之間的分隔符,並被視為使用"OR"邏輯連線。 也就是,MATCHE1 MATCHE2 + MATCHE3 MATCHE4 MATCHE5 + MATCHE6 MATCHE7 相當於 ( MATCHE1 MATCHE2 ) OR ( MATCHE3 MATCHE4 MATCHE5 ) OR ( MATCHE6 MATCHE7 )
還可以使用絕對路徑作為引數來過濾日誌。 絕對路徑可以是普通檔案,也可以是軟連線,但必須指向一個確實存在的檔案。 如果路徑指向了一個二進位制可執行檔案, 那麼它實際上相當於是一個對 "_EXE=" 欄位的匹配(僅匹配完整的絕對路徑)。 如果路徑指向了一個可執行指令碼, 那麼它實際上相當於是一個對 "_COMM=" 欄位的匹配(僅匹配指令碼的檔名)。 如果路徑指向了一個裝置節點, 那麼它實際上相當於是一個對 "_KERNEL_DEVICE=" 欄位的匹配(匹配該裝置及其所有父裝置的核心裝置名稱)。 在查詢時,軟連線會被追蹤到底,核心裝置名稱將被合成, 父裝置將按照當時的實際情況被提列出來。 因為日誌項一般並不包含標記實際物理裝置的欄位, 所以,裝置節點一般就是實際物理裝置的最佳代表。 但是又因為裝置節點與物理裝置之間的對應關係在系統重啟之後可能會發生變化, 所以,根據裝置節點過濾日誌僅對本次啟動有意義, 除非你能確認對應關係在重啟之後保持不變。
可以使用 --boot, --unit= 等選項 進一步附加額外的約束條件(相當於使用"AND"邏輯連線)。
最終的輸出結果來自所有可訪問的日誌檔案的綜合, 無論這些日誌檔案是否正在滾動或者正在被寫入, 也無論這些日誌檔案是屬於系統日誌還是使用者日誌, 只要有訪問許可權,就會被包括進來。
用於提取日誌的日誌檔案的集合可以使用 --user, --system, --directory, --file 選項進行篩選。
每個使用者都可以訪問其專屬的使用者日誌。 但是預設情況下, 只有root使用者以及 "systemd-journal", "adm", "wheel" 組中的使用者才可以訪問全部的日誌(系統與其他使用者)。 注意,一般發行版還會給 "adm" 與 "wheel" 組一些其他額外的特權。 例如 "wheel" 組的使用者一般都可以執行一些系統管理任務。
預設情況下,結果會透過 less 工具進行分頁輸出, 並且超長行會在螢幕邊緣被截斷。 不過,被截掉的部分可以透過左右箭頭按鍵檢視。 如果不想分頁輸出,那麼可以使用 --no-pager 選項,參見下面的"環境變數"小節。
如果是輸出到 tty 的話,行的顏色還會根據日誌的級別變化: ERROR 或更高級別為紅色,NOTICE 或更高級別為高亮,其他級別則正常顯示。
選項
能夠識別的命令列選項如下:
--no-full, --full, -l
老舊的 -l/--full 選項 僅用於撤銷已有的 --no-full 選項,除此之外沒有其他用處。
-a, --all
-f, --follow
-e, --pager-end
-n, --lines=
--no-tail
-r, --reverse
-o, --output=
short
short-iso
short-precise
short-monotonic
short-unix
verbose
export
json
json-pretty
json-sse
cat
--utc
--no-hostname
-x, --catalog
注意,如果要將日誌輸出用於bug報告, 請不要使用此選項。
-q, --quiet
-m, --merge
-b [ID][±offset], --boot=[ID][±offset]
如果引數為空(也就是 ID 與 ±offset 都未指定), 則表示僅顯示本次啟動的日誌。
如果省略了 ID , 那麼當 ±offset 是正數的時候, 將從日誌頭開始正向查詢, 否則(也就是為負數或零)將從日誌尾開始反響查詢。 舉例來說, "-b 1"表示按時間順序排列最早的那次啟動, "-b 2"則表示在時間上第二早的那次啟動; "-b -0"表示最後一次啟動, "-b -1"表示在時間上第二近的那次啟動, 以此類推。 如果 ±offset 也省略了, 那麼相當於"-b -0", 除非本次啟動不是最後一次啟動(例如用 --directory 指定了另外一臺主機上的日誌目錄)。
如果指定了32字元的 ID , 那麼表示以此 ID 所代表的那次啟動為基準 計算偏移量(±offset), 計算方法同上。 換句話說, 省略 ID 表示以本次啟動為基準 計算偏移量(±offset)。
--list-boots
-k, --dmesg
-t, --identifier=SYSLOG_IDENTIFIER
可以多次使用該選項以指定多個識別符。
-u, --unit=UNIT|PATTERN
可以多次使用此選項以新增多個並列的匹配條件(相當於用"OR"邏輯連線)。
--user-unit=
可以多次使用此選項以新增多個並列的匹配條件(相當於用"OR"邏輯連線)。
-p, --priority=
-c, --cursor=
--after-cursor=
--show-cursor
-- cursor: s=0639...
遊標的具體格式是私有的(也就是沒有公開的規範), 並且會變化。
-S, --since=, -U, --until=
-F, --field=
-N, --fields
--system, --user
-M, --machine=
-D DIR, --directory=DIR
--file=GLOB
--root=ROOT
--new-id128
--header
--disk-usage
--vacuum-size=, --vacuum-time=, --vacuum-files=
--list-catalog [128-bit-ID...]
如果明確指定了分類ID(128-bit-ID), 那麼僅顯示指定的分類。
--dump-catalog [128-bit-ID...]
如果明確指定了分類ID(128-bit-ID), 那麼僅顯示指定的分類。
--update-catalog
--setup-keys
--force
--interval=
--verify
--verify-key=
--sync
--flush
--rotate
-h, --help
--version
--no-pager
退出狀態
返回值為 0 表示成功, 非零返回值表示失敗程式碼。
環境變數
$SYSTEMD_PAGER
$SYSTEMD_LESS
例子
不帶任何選項與引數,表示顯示全部日誌
journalctl
僅指定一個匹配條件, 顯示所有符合該匹配條件的日誌
journalctl _SYSTEMD_UNIT=avahi-daemon.service
指定了兩個不同欄位的匹配條件, 顯示同時滿足兩個匹配條件的日誌
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097
指定了同一個欄位的兩個不同匹配條件, 顯示滿足其中任意一個條件的日誌
journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
使用 "+" 連線兩組匹配條件, 相當於邏輯"OR"連線
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service
顯示所有 D-Bus 程序產生的日誌
journalctl /usr/bin/dbus-daemon
顯示上一次啟動所產生的所有核心日誌
journalctl -k -b -1
持續顯示 apache.service 服務不斷生成的日誌
journalctl -f -u apache
參見
systemd(1), systemd-journald.service(8), systemctl(1), coredumpctl(1), systemd.journal-fields(7), journald.conf(5), systemd.time(7)
NOTES
- 1.
- syslog
- 2.
- Journal Export Format
- 3.
- Journal JSON Format
- 4.
- Server-Sent Events
- 5.
- Message Catalog Developer Documentation
跋
本頁面中文版由中文 man 手冊頁計劃提供。
翻譯人員:金步國
金步國作品集:http://www.jinbuguo.com
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
systemd 231 |