1つのコマンドを使用してJournalctlログを単位と識別子で表示する方法は?

1つのコマンドを使用してJournalctlログを単位と識別子で表示する方法は?

ログを表示するために使用できる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

ベストアンサー1

要約:次のように動作します。

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

+2つの結合セットを結合し、2つの式のいずれかに一致するログ行を見つけることができます。 (この内容はJournalctlのマニュアルページに記載されています。)

-uこれを行うには、正しいフィールド名(フラグと-tショートカット)で参照する必要があります。

あなたは見ることができますsystemd.journal-フィールド(5)フィールド名のドキュメントです。 (該当ページには、1つは下線で始まり、もう1つはない理由も説明されています。)

_SYSTEMD_UNITサフィックスを含む正確に一致する項目が必要なためです.service-uショートカットはスマートで、フィールド固有のクエリに変換するときに正確な単位名を探します)。

それらを組み合わせると、上記のコマンドを取得できます。

おすすめ記事