ubuntuusers.de

systemd-cat

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png systemd verwendet standardmäßig ein zentrales Journal, in dem alle Logs aufgezeichnet werden. Mit dem Befehl systemd-cat kann man auf der Kommandozeile bzw. aus Shellskripten heraus bei Bedarf Einträge in dieses Journal schreiben. Es stellt damit einen Ersatz zum Befehl logger dar.

Installation

systemd-cat ist im Paket systemd enthalten, das integraler Bestandteil von Ubuntu ist und ohne dass das System nicht lauffähig ist. Von daher ist systemd-cat immer installiert.

Benutzung

Die Benutzung von systemd-cat ist einfach. Die allgemeine Syntax lautet [1]:

systemd-cat [OPTION] BEFEHL 

Dabei wird die Ausgabe von BEFEHL in die Logdatei geschrieben. Wird kein BEFEHL angegeben, liest systemd-cat standardmäßig von stdin. Da systemd-cat ein "normaler" Shellbefehl ist, funktionieren natürlich auch alle Umleitungen. So würde z.B. bei

echo 'Hallo Welt' | systemd-cat 

die Zeichenkette Hallo Welt in die Logdatei geschrieben.

Optionen von systemd-cat
Option Erklärung
-t, --identifier= Fügt der Logmeldungen einen "Identifier" (Text zur Identifikation) hinzu. Dies ist immer dann sinnvoll, wenn man später gezielt nach bestimmten Einträgen suchen möchte.
-p, --priority= Gibt der Logmeldung eine Priorität, welche an die von syslog angelehnt ist. Mögliche Werte sind emerg, alert, crit, err, warning, notice, info, debug. Alternativ kann die Priorität als Zahl zwischen 0 (emeg) und 7 (debug) angegeben werden.
--level-prefix= Legt fest, ob die Logmeldung vor dem Schreiben auf ein Prioritäts-Prefix geprüft werden soll. Mögliche Werte sind true (die Voreinstellung) oder false

Beispiele

Im Folgenden einige Beispiele zu systemd-cat.

  • Die Ausgabe von ls in die Logdatei schreiben:

    systemd-cat ls 
  • Die Zeichenkette "Hallo Welt" mit dem Identifier [ubuntuusers] in die Logdatei schreiben:

    echo "Hallo Welt" | systemd-cat -t "ubuntuusers" 

    Ergebnis:

    Jan 14 19:49:35 xubuntu ubuntuusers[1939]: Hallo Welt

    Wie zu sehen ist, werden dabei standardmäßig Datum, Uhrzeit und Rechnername mit geloggt. Nach dem Identifier lässt sich mittels journalctl dann gezielt suchen.

  • Wie oben, aber mit dem Loglevel "warning":

    echo "Hallo Welt" | systemd-cat -p "warning" 
  • Loglevel automatisch auf "Info" setzen:

    echo "<6>Hallo Welt" | systemd-cat 

    Die 6 entspricht der numerischen Priorität für "Info", siehe obige Tabelle. Die spitzen Klammern < > sind notwendig, damit systemd-cat die Zahl als Priorität des Loglevels identifiziert. Der Befehl:

    echo "<6>Hallo Welt" | systemd-cat --level-prefix False 

    würde hingegen folgenden Logeintrag schreiben:

    Jan 14 20:01:35 xubuntu unknown[1963]: <6>Hallo Welt

Diese Revision wurde am 8. April 2022 15:56 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, System, systemd