check-jobの標準出力・標準エラーをjournalへ送り、identifierをnightly-checkにする。
適切なコマンドはどれか。
systemd-catはcommandのstdout/stderrまたは標準入力をjournalへ接続し、-tでidentifierを指定できる。
詳細解説
logger -f nightly-check check-job-fは入力file用でcommandを実行して両streamをjournalへ接続しない。
誤り。logger -fはnightly-checkというfileを読み込もうとし、check-job processを起動してstreamを接続しない。
systemd-cat -t nightly-check check-jobcommandを起動し、その出力を指定identifierでjournalへ接続する。
正しい。systemd-catがcheck-jobを子processとして起動し、出力へnightly-check identifierを付けてjournalへ送る。
journalctl -t nightly-check check-job既存entryをidentifierで読む操作でcommand実行器ではない。
誤り。journalctlはreaderで、-t nightly-checkは既存entryをfilterするがcheck-jobを送信対象として実行しない。
rsyslogd -t nightly-check check-jobrsyslog daemonの起動optionで出力wrapperではない。
誤り。rsyslogdはlogging daemonで、任意commandのstreamをtag付きでjournalへ包むinterfaceではない。
実際に確かめる
一時的な検証環境で実行できる例です。
systemd-cat --help 2>&1 | grep -E -- '--identifier| -t' | head -n 1期待される結果
-tまたは--identifierのhelp行理解のポイント
- systemd-catはjournal送信
- -tはidentifier
- journalctl -tで検索可能
確認時の注意
- 確認環境: systemd-cat helpの読取のみ
基礎のおさらい
identifier
SYSLOG_IDENTIFIERはjournalctl -t等で抽出でき、複数jobの出力を区別しやすくする。
priority
systemd-catはstdoutとstderrへ異なる既定priorityを割り当てたり、level-prefixを解釈したりできる。