[[Vorlage(Getestet, focal, bionic)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [: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 [:bsdutils#logger: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]: {{{#!vorlage Befehl 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 [:Shell/Umleitungen/:Umleitungen]. So würde z.B. bei {{{#!vorlage Befehl echo 'Hallo Welt' | systemd-cat }}} die Zeichenkette `Hallo Welt` in die Logdatei geschrieben. {{{#!vorlage Tabelle <-2 rowclass="titel">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: {{{#!vorlage Befehl systemd-cat ls }}} * Die Zeichenkette "Hallo Welt" mit dem Identifier `[ubuntuusers]` in die Logdatei schreiben: {{{#!vorlage Befehl 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": {{{#!vorlage Befehl echo "Hallo Welt" | systemd-cat -p "warning" }}} * Loglevel automatisch auf "Info" setzen: {{{#!vorlage Befehl 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: {{{#!vorlage 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 = * [:systemd/journalctl:journalctl] - die systemd-Datei auslesen * [:Logdateien:] - Wikiartikel zum Thema Logdateien * [http://www.freedesktop.org/software/systemd/man/systemd-cat.html Dokumentation] {en} von systemd-cat bei freedesktop.org #tag: System, Shell, systemd