Systemd
如何直接檢查 systemd 日誌文件?
我的設備上的 arch linux 失敗了。該設備沒有任何螢幕,它不響應網路。所以我拿了它的 SD 卡,將它插入 ubuntu 桌面,在那裡看到一個新的 system.journal 並且……如何查看裡面的內容?
從 Arch Linux 文件中我知道我可以做到:
strings /mnt/arch/var/log/journal/.../system.journal | grep -i message
但這真的很基礎。問題是:
有沒有比使用字元串更方便的方法從另一個系統檢查 system.journal ?例如,我可以指定要為journalctl讀取的文件嗎?
首先,使用的能力
strings
源於一個巧合,因為 journald 不會壓縮小的(在目前實現中低於 64KiB)欄位。這不是閱讀期刊的受支持方式,在 archwiki 中確實應該這樣標記。它更像是一種最後的恢復方法。現在談談這個問題。從journalctl(1):
-D 目錄,–目錄 = 目錄
將目錄路徑作為參數。如果指定,journalctl 將在指定的日誌目錄 DIR 上操作,而不是預設的執行時和系統日誌路徑。
因此,假設損壞系統的 rootfs 掛載在 下
$DEST
,請使用journalctl -D $DEST/var/log/journal
查看其係統日誌。為了完整起見:要查看特定文件,請使用
journalctl --file
,例如journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal
. 但是,請注意日誌文件會定期輪換,因此根據您的案例,此表單可能無法用於查看完整的日誌。