ファイルからSystemdログへのログリダイレクト

ファイルからSystemdログへのログリダイレクト

systemd serviceで始まったプログラムがありますmyprogram.service。問題は、ログをログファイルに直接書き込むことです/opt/myprogram/logs.txtjournalctl.

myprogram.service特定のファイルのテキストをログにパイプするようにSystemdに指示するように変更することは可能ですか?

ベストアンサー1

tailまず、とを組み合わせてみましょうlogger

tail -f /opt/myprogram/logs.txt | logger

tailファイルからすべての新しい行を継続的に読み取り、標準出力にコピーします。ロガーはこれらの行をシステムログに送信します。

編集する:

パイプがバッファリングされているため、ロガーはしばらく(4Kbのデフォルトバッファがいっぱいになるまで)スリープ状態になる可能性があります。この問題は、stdbufバッファリングを有効または無効にすることで解決できますunbuffer

stdbuf -i0 -o0 tail -f /opt/myprogram/logs.txt | logger

おすすめ記事