Systemd

在 journalctl 中僅列印時間戳和消息

  • September 3, 2021

我正在嘗試從中獲取最後幾行,journalctl以便將它們輸入到我的conky. 然而journalctl,預設情況下提供了太多浪費空間的廢話:journalctl -u PROCESS -n 5 --no-pager -l我得到如下條目:

DATE TIME HOSTNAME PROCESS: MESSAGE

我只想列印TIME MESSAGE。我怎樣才能做到這一點?


手冊頁說有一個-o參數,但沒有適合我需要的預定義格式。我嘗試添加--output-fields=__REALTIME_TIMESTAMP,MESSAGE,但這只是顯示預設輸出(而不是時間戳/消息)。該論點聲稱只有某些格式受到影響,所以我嘗試--output-fields=__REALTIME_TIMESTAMP,MESSAGE -o verbose了,但這只會給我正常的 vebose 輸出。此外,顯然總是列印 4 個欄位,這對我來說已經太多了。我只想要 2:一個緊湊的時間戳和消息。

我可以使用一些 bash 魔術或 python 腳本來清理它,但這似乎有點過分。當然有辦法讓 journalctl 給我一個時間戳和消息嗎?

這似乎已在 2018 年實施,請參閱此 PR。對於 236 及更高版本,您似乎可以使用--output-fields=,如--help. 檢查您的版本systemctl --version,我的 CentOS 7 目前(2019 年)執行版本 219,因此這可能需要一些時間才能在大多數環境中使用。

編輯:僅供參考 EL8(截至 2021 年 4 月 12 日)執行 systemd 239,因此可用。

journalctl --output cat

cat
              generates a very terse output, only showing the actual message of each journal entry with no metadata, not even a timestamp. If combined with the --output-fields= option will output the listed fields for each log
              record, instead of the message.

引用自:https://unix.stackexchange.com/questions/418349