簡潔にするために、スクリプトからsystemd
ジャーナルに書き込みたいと思います。
printf "%s\n%s\n%s\n" CODE_FILE=/etc/zsh/zprofile CODE_LINE=31 MESSAGE="could not read /etc/dircolors" | logger --journald
動作しません。その正確なコード(または印刷などの他のバリアント)を実行しても、ジャーナル(journalctl --full --all --no-pager -n 10
)。
ここで何が問題になっていますか?
使用する - systemd-cat
。パイプラインまたはプログラム出力をジャーナルに接続します。
例:
printf "Write text to the journal" | systemd-cat
結果:
journalctl -xn
[..]
Apr 12 13:37:00 servername [31509]: Write text to the journal
ロギングツールを特定する場合は、 -t オプションを追加できます。
printf "Write text to the journal" | systemd-cat -t yourIdentifier
journalctl -xn
Apr 12 13:37:00 servername yourIdentifier[31833]: Write text to the journal
編集:指定したsyslog識別子のメッセージのみを表示するには、-tオプションを使用します。
journalctl -t yourIdentifier
このパラメーターは複数回指定できます。
| systemd-cat
は、次の場合は機能しません。
exec 1>>$LOGFILE
)をリダイレクトしましたこれは、あなたが| tee systemd-cat
を使用している場合でも同じです。
この場合、最善のアクションはそれを元に戻すことです:
printf
呼び出しに| tee -a $LOGFILE
を実行させる