journalctl — 檢索 systemd 日誌html
journalctl 可用於檢索 systemd(1) 日誌(由 systemd-journald.service(8) 記錄)。less
若是不帶任何參數直接調用此命令, 那麼將顯示全部日誌內容(從最先一條日誌記錄開始)。工具
若是指定了 [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 )spa
還可使用絕對路徑做爲參數來過濾日誌。 絕對路徑能夠是普通文件,也能夠是軟鏈接, 但必須指向一個確實存在的文件。 若是路徑指向了一個二進制可執行文件, 那麼它實際上至關因而一個對 "_EXE=
" 字段的匹配(僅匹配完整的絕對路徑)。 若是路徑指向了一個可執行腳本, 那麼它實際上至關因而一個對 "_COMM=
" 字段的匹配(僅匹配腳本的文件名)。 若是路徑指向了一個設備節點, 那麼它實際上至關因而一個對 "_KERNEL_DEVICE=
" 字段的匹配(匹配該設備及其全部父設備的內核設備名稱)。 在查詢時, 軟鏈接會被追蹤到底,內核設備名稱將被合成, 父設備將按照當時的實際狀況被提列出來。 由於日誌項通常並不包含標記實際物理設備的字段, 因此,設備節點通常就是實際物理設備的最佳表明。 可是又由於設備節點與物理設備之間的對應關係在系統重啓以後可能會發生變化, 因此,根據設備節點過濾日誌僅對本次啓動有意義, 除非你能確認對應關係在重啓以後保持不變。日誌
可使用 --boot
, --unit=
等選項 進一步附加額外的約束條件(至關於使用"AND"邏輯鏈接)。code
最終的輸出結果來自全部可訪問的日誌文件的綜合, 不管這些日誌文件是否正在滾動或者正在被寫入, 也不管這些日誌文件是屬於系統日誌仍是用戶日誌, 只要有訪問權限,就會被包括進來。htm
用於提取日誌的日誌文件的集合可使用 --user
, --system
, --directory
, --file
選項進行篩選。ci
每一個用戶均可以訪問其專屬的用戶日誌。 可是默認狀況下, 只有root用戶以及 "systemd-journal
", "adm
", "wheel
" 組中的用戶才能夠訪問所有的日誌(系統與其餘用戶)。 注意,通常發行版還會給 "adm
" 與 "wheel
" 組一些其餘額外的特權。 例如 "wheel
" 組的用戶通常均可以執行一些系統管理任務。get
默認狀況下,結果會經過 less 工具進行分頁輸出, 而且超長行會在屏幕邊緣被截斷。 不過,被截掉的部分能夠經過左右箭頭按鍵查看。 若是不想分頁輸出,那麼可使用 --no-pager
選項,參見下面的"環境變量"小節。it
若是是輸出到 tty 的話,行的顏色還會根據日誌的級別變化: ERROR 或更高級別爲紅色,NOTICE 或更高級別爲高亮,其餘級別則正常顯示。
經常使用命令
journalctl -xe
打印從2019-08-22 11:00:00後面的日誌
journalctl --since "2019-08-22 11:00:00"