Systemd

如何使用一個命令按單位和標識符查看 journalctl 日誌?

  • December 26, 2021

我有一個 vpn 服務單元,我可以使用它查看日誌…

journalctl -u vpn

我還有一個腳本可以手動與 vpn 互動並記錄到日誌中…

exec > >(systemd-cat -t vpn.sh) 2>&1

我可以查看日誌…

journalctl -t vpn.sh

我嘗試使用…查看兩個日誌

journalctl -u vpn -t vpn.sh

但它沒有用。

有沒有辦法同時查看兩個日誌?或者是否可以-t vpn.sh在 vpn 服務單元文件中設置標識符 () 以匹配我的腳本 ( vpn.sh) 的標識符。

TL;DR:這將起作用:

$ journalctl _SYSTEMD_UNIT=vpn.service + SYSLOG_IDENTIFIER=vpn.sh

您可以使用+連接兩組連接並查找與任一表達式匹配的日誌日誌行。(這記錄在 journalctl 的手冊頁中。)

為此,您需要通過其正確的欄位名稱(標誌-u-t快捷方式)來引用它們。

您可以查看systemd.journal-fields(5)以獲取欄位名稱的文件。(該頁面還將解釋為什麼其中一個有前導下劃線而另一個沒有。)

因為_SYSTEMD_UNIT您需要完全匹配,包括.service後綴(-u快捷方式很智能,在將其轉換為按欄位查詢時會找到確切的單位名稱。)

把它們放在一起,你會得到上面的命令。

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