Ich habe ein System mit mehreren Daemons (als systemd-Einheiten), die Protokollinformationen in das Journal in Arch Linux ausgeben. Ich möchte die Journalausgabe einiger dieser Einheitendateien in eine separate Textdatei leiten, deren Speicherort ich spezifiziere, und im Wesentlichen eine Protokolldatei für eine Teilmenge von Einheiten erstellen. Wie kann ich das machen?
arch-linux
systemd
logs
systemd-journald
Amr Bekhit
quelle
quelle
Antworten:
Dies scheint im Upstream nicht möglich und unerwünscht zu sein (Umleiten von stdout / stderr in einzelne Dateien), siehe z. B. http://lists.freedesktop.org/archives/systemd-devel/2012-March/004705.html - Lesen Sie den gesamten Thread, um weitere Informationen zu erhalten Kontextinformationen, wie dies funktionieren soll.
Sie können entweder in Syslog protokollieren und auf diese Weise in einzelne Dateien schreiben. Oder umgekehrt: Wenn das Gerät ein Programm aufruft, das selbst ein Protokoll schreiben kann, verwenden Sie dieses, um sich in einer Datei anzumelden.
Vielleicht möchten Sie auch einen Blick auf View stdout / stderr des systemd-Dienstes werfen
Was Sie bereits mit Ihrem aktuellen Setup tun können, ist
journalctl -u yourunitname > yourlogfile_for_yourunitname
, die gesamte Journalausgabe für Ihr Gerät "Ihr Einheitenname" in eine Datei zu leiten.
Im letzten Teil sollten Sie sich auch die Hinweise von Lennart aus dem oben genannten Mailinglisten-Thread ansehen:
EDIT: Tatsächlich ist der Befehl für neuere systemd-Versionen nur journalctl und soweit ich das beurteilen kann, ist der oben genannte lange Befehl der gleiche wie
journalctl -u yourunitname
und Sie können dort auch-f
der Ausgabe "folgen" (wie in tailf oder tail -f).quelle