systemd-cat
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
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:
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
Links¶
journalctl - die systemd-Datei auslesen
Logdateien - Wikiartikel zum Thema Logdateien
Dokumentation 🇬🇧 von systemd-cat bei freedesktop.org