特定のユニットのジャーナル出力を特定のファイルに送る方法は?


12

Arch Linuxのジャーナルにログ情報を出力するいくつかのデーモンが(systemdユニットとして)実行されているシステムがあります。これらのユニットファイルのいくつかのジャーナル出力を、場所を指定する別のテキストファイルに送り、基本的にユニットのサブセットのログファイルを作成します。どうすればそれを実現できますか?


関連する質問はunix.stackexchange.com/questions/468444です。
JdeBP 2018

回答:


10

これは不可能であり、上流では望ましくないようです(stdout / stderrを個々のファイルにリダイレクトします)。たとえば、http//lists.freedesktop.org/archives/systemd-devel/2012-March/004705.htmlを参照してください。詳細については、スレッド全体をお読みくださいこれがどのように機能するかを意図したコンテキスト情報。

できることは、syslogにログを記録し、その方法で個々のファイルに書き込むことです。または逆に、ユニットがログ自体を書き込むことができるプログラムを呼び出す場合は、それを使用してファイルにログを記録します。

また、を見てみたいことにsystemdサービスの表示標準出力/標準エラー出力

現在の設定ですでに実行できることは
journalctl -u yourunitname > yourlogfile_for_yourunitname
、ユニット「yourunitname」のジャーナル出力全体をファイルに送ることです。

後半では、上記のメーリングリストスレッドからのLennartのヒントも参照してください。

最近のsystemdバージョンsystemd-journalctl -o cat _SYSTEMD_UNIT=postgresql.serviceでは、などは、実際のメッセージのみを含み、他には何も含まない非常に単純な出力を作成する必要があります。「-f」を渡して、これをライブにすることもできます。」

編集: 実際には、新しいsystemdバージョンのコマンドはjournalctlのみであり、私が言えることは、上記の長いコマンドは同じでjournalctl -u yourunitnameあり、-fそこから出力を「追跡」することもできます(tailfまたはtail -fなど)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.