logger - Meldungen in das Systemprotokoll übertragen
ÜBERSICHT
logger [Optionen] [Meldung]
logger überträgt Einträge in das
Systemprotokoll.
Wenn das optionale Argument Meldung angegeben ist, wird
diese Meldung in das Systemprotokoll übertragen. Falls weder das
Argument noch die Option -f angegeben ist, wird der Inhalt der
Standardeingabe protokolliert.
- -d, --udp
- verwendet nur Datagramme (UDP). Standardmäßig wird die
Verbindung über den in /etc/services definierten Syslog-Port
versucht, oft ist dieser der Port 514.
Siehe auch --server und --socket, um anzugeben,
wohin verbunden werden soll.
- -e,
--skip-empty
- ignoriert leere Zeilen beim Verarbeiten von Dateien. Eine leere Zeile wird
hierbei als Zeile definiert, die keinerlei Zeichen enthält. Daher
wird eine Zeile, die nur Leerraum enthält, NICHT als leere Zeile
angesehen. Beachten Sie, dass bei Angabe der Option --prio-prefix
die Priorität nicht Teil der Zeile ist. Daher wird in diesem Modus
eine Zeile als leer angesehen, die nach dem
Prioritäts-Präfix (z.B. <13>) keine Zeichen
enthält.
- -f, --file
Datei
- protokolliert den Inhalt der angegebenen Datei. Diese Option kann
nicht mit einer Befehlszeilenmeldung kombiniert werden.
- -i
- protokolliert mit jeder Zeile die Prozesskennung des
logger-Prozesses.
- --id[=Kennung]
- protokolliert die Prozesskennung des logger-Prozesses mit jeder
Zeile. Wenn das optionale Argument Kennung angegeben ist, wird
dieses anstelle der Prozesskennung des logger-Befehls verwendet. In
Skripten, die mehrere Meldungen senden, wird die Verwendung von
--id=$$ (PPID) empfohlen.
Beachten Sie, dass die Infrastruktur der Systemprotokollierung
(zum Beispiel systemd beim Warten an /dev/log) den Anmeldedaten
lokaler Sockets folgen könnte, um die in der Meldung angegebene
Prozesskennung außer Kraft zu setzen. logger(1) ist in der
Lage, dessen Socket-Anmeldedaten auf die angegebene Kennung zu
setzen, was aber voraussetzt, dass Sie über Root-Rechte
verfügen und ein Prozess mit der angegebenen Prozesskennung
existiert. Anderenfalls werden die Anmeldedaten des Sockets nicht
verändert und das Problem stillschweigend ignoriert.
- --journald[=Datei]
- schreibt einen Systemd-Journaleintrag. Der Eintrag wird aus der
angegebenen Datei gelesen, ansonsten aus der Standardeingabe. Jede
Zeile muss mit einem Feld beginnen, das von journald akzeptiert
wird; siehe systemd.journal-fields(7) für Details. Es ist im
Allgemeinen eine gute Idee, ein MESSAGE_ID-Feld zu verwenden, da es das
Auffinden von Einträgen erleichtert. Beispiele:
-
logger --journald <<end
MESSAGE_ID=67feb6ffbaf24c5cbec13c008dd72309
MESSAGE=The dogs bark, but the caravan goes on.
DOGS=bark
CARAVAN=goes on
end
-
logger --journald=entry.txt
- Beachten Sie, dass --journald Werte anderer Optionen ignoriert, wie
beispielsweise die Priorität. Falls die Priorität
nötig ist, muss sie innerhalb der Eingabe stehen und das Feld
PRIORITY verwenden. Die einfache Ausführung von journalctl
wird das MESSAGE-Feld anzeigen. Mit journalctl --output json-pretty
werden die übrigen Felder angezeigt.
Um Zeilenumbrüche in MESSAGE zu verwenden, geben Sie
MESSAGE mehrfach an. Dies wird als Spezialfall behandelt, andere Felder
werden als ein Feld im Journal gespeichert, falls sie mehrfach
auftauchen.
- --msgid
msgid
- Setzt das MSGID-Feld gemäß RFC 5424. Beachten Sie, dass
innerhalb von MSGID kein Leerzeichen zulässig ist. Diese
Option wird nur verwendet, wenn zugleich --rfc5424 angegeben ist,
anderenfalls wird sie stillschweigend ignoriert.
- -n, --server
Server
- schreibt auf den angegebenen fernen Systemprotokoll-Server statt in
den Systemprotokoll-Socket. Außer wenn --udp oder
--tcp angegeben ist, versucht logger zuerst, UDP zu
verwenden; wenn dies fehlschlägt, wird eine TCP-Verbindung
versucht.
- --no-act
- führt alles aus, außer dem Schreiben der Meldung in das
Systemprotokoll und Entfernen der Verbindung zum Journal. Diese Option
kann zusammen mit --stderr für Testzwecke verwendet
werden.
- --octet-count
- verwendet die Octet-Counting-Framing-Methode gemäß RFC 6587
zum Senden von Meldungen. Wenn diese Option nicht verwendet wird, wird
kein Framing mit UDP und nicht-transparentes Framing (auch als
»Octet Stuffing« bekannt) mit TCP verwendet.
- -P, --port
Port
- verwendet den angegebenen Port. Wenn diese Option nicht angegeben
ist, wird standardmäßig syslog für UDP- und
syslog-conn für TCP-Verbindungen verwendet.
- -p, --priority
Priorität
- überträgt die Meldung mit der angegebenen
Priorität in das Protokoll. Die Priorität kann
numerisch oder als Einrichtung.Stufe-Paar angegeben werden.
Zum Beispiel protokolliert -p local3.info die Meldung als
informativ in der Einrichtung local3. Die Voreinstellung ist
user.notice.
- --prio-prefix
- schaut in jeder aus der Standardeingabe gelesenen Zeile nach einem
Systemprotokoll-Präfix. Dieses Präfix ist eine Dezimalzahl
in spitzen Klammern, die sowohl Einrichtung als auch Stufe enthält.
Für die Ermittlung der Zahl wird die Einrichtung mit 8
multipliziert und dann die Stufe addiert. Zum Beispiel wird
local0.info (was Einrichtung=16 und Stufe=6 bedeutet) zu
<134>.
Falls das Präfix keine Einrichtung enthält, wird
standardmäßig die durch die Option -p angegebene
verwendet. Wenn kein Präfix angegeben ist, wird die Zeile mit der
durch -p angegebenen Priorität protokolliert.
Diese Option wirkt sich nicht auf eine Befehlszeilenmeldung
aus.
- --rfc3164
- verwendet das BSD-Syslog-Protokoll gemäß RFC 3164 zur
Übermittlung von Meldungen an einen fernen Server.
- --rfc5424[=ohne]
- verwendet das Syslog-Protokoll gemäß RFC 5424 zur
Übermittlung von Meldungen an einen fernen Server. Das optionale
Argument ohne kann eine durch Kommata getrennte Liste der folgenden
Werte sein: notq, notime, nohost.
Der Wert notq unterdrückt die
zeit-qualitäts-strukturierten Daten in der übermittelten
Meldung. Die Zeitqualitätsinformationen zeigen an, ob die lokale
Uhr synchronisiert war, sowie die maximale Anzahl an Mikrosekunden, die
der Zeitstempel abweichen könnte. Die Zeitqualität wird
auch automatisch unterdrückt, wenn --sd-id timeQuality
angegeben wird.
Der Wert notime (der notq impliziert)
unterdrückt den im ISO-8601-Format vorliegenden
vollständigen Absender-Zeitstempel, einschließlich
Mikrosekunden und Zeitzone.
Der Wert nohost unterdrückt die
gethostname(2)-Information aus dem Meldungs-Header.
- Das RFC-5424-Protokoll ist für logger seit Version 2.26 die
Vorgabe.
- -s, --stderr
- schreibt die Meldung in die Standardfehlerausgabe und
überträgt sie auch in das Systemprotokoll.
- --sd-id
Name[@Stellen]
- gibt eine strukturierte Datenelement-Kennung für einen
Meldungs-Header gemäß RFC 5424 an. Die Option muss vor
--sd-param angegeben werden, um ein neues Element einzuleiten. Die
Anzahl der strukturierten Datenelemente ist unbegrenzt. Für die
Kennung (Name plus mögliche @Ziffern) wird die
Groß-/Kleinschreibung nicht berücksichtigt. Sie
identifiziert eindeutig den Typ und Zweck des Elements. Eine Kennung darf
nicht mehrmals in einer Meldung vorhanden sein. Der
@Ziffern-Teil ist für benutzerdefinierte, nicht
standardisierte Kennungen erforderlich.
logger erzeugt derzeit nur das standardisierte
timeQuality-Element. RFC 5424 beschreibt auch die Elemente
origin (mit den Parametern ip, enterpriseId,
software und swVersion) und meta (mit den
Parametern sequenceId, sysUpTime und language).
Diese Elementkennungen können ohne das Suffix
@Ziffern angegeben werden.
- --sd-param
Name="Wert"
- gibt einen strukturierten Datenelement-Parameter an, ein Name-Wert-Paar.
Die Option muss nach --sd-id angegeben werden. Sie darf für
das gleiche Element mehrmals angegeben werden. Beachten Sie, dass die
Anführungszeichen um den Wert erforderlich sind und in der
Befehlszeile maskiert werden müssen.
-
logger --rfc5424 --sd-id zoo@123 \
--sd-param tiger=\"hungry\" \
--sd-param zebra=\"running\" \
--sd-id manager@123 \
--sd-param onMeeting=\"yes\" \
"dies ist die Nachricht"
- erzeugt:
-
<13>1 2015-10-01T14:07:59.168662+02:00 ws kzak - - [timeQuality
tzKnown="1" isSynced="1"
syncAccuracy="218616"][zoo@123 tiger="hungry"
zebra="running"][manager@123 onMeeting="yes"] dies ist
die Nachricht
- -S, --size
Größe
- legt die maximal erlaubte Größe der Meldung fest. Die
Vorgabe ist 1KiB an Zeichen, welches die in RFC 3164 beschriebene
traditionell verwendete Grenze ist. Mit RFC 5424 wurde diese Grenze
flexibler. Eine gute Annahme ist, dass RFC-5424-Empfänger
mindestens eine 4KiB große Meldung verarbeiten können.
Die meisten Empfänger akzeptieren Meldungen, die
größer als 1KiB sind, über jedes
Syslog-Übertragungsprotokoll. Daher wird logger in jedem
Fall durch die Option --size beeinflusst (nicht nur, wenn
--rfc5424 angegeben wurde).
Beachten Sie: Die Begrenzung der Meldungsgröße
gilt für die gesamte Meldung einschließlich des
Systemprotokoll-Headers. Die Größe dieses Headers
hängt von den gewählten Optionen und der Länge des
Rechnernamens ab. Als Faustregel gilt, dass Header üblicherweise
nicht länger als 50 bis 80 Zeichen sind. Wenn Sie die maximale
Meldungsgröße wählen, müssen Sie
sicherstellen, dass der Empfänger diese maximale
Größe ebenfalls unterstützt, ansonsten
könnten Meldungen gekürzt werden. Als Faustregel gilt
wiederum, dass eine Meldungsgröße von 4 KiB generell
funktionieren sollte, aber bei größeren Meldungen sollte
zuvor geprüft werden, ob es funktioniert.
- --socket-errors[=Modus]
- gibt Fehler zu Unix-Socket-Verbindungen aus. Der Modus kann einer
der Werte off, on oder auto sein. Im Modus
auto erkennt logger, ob systemd der Init-Prozess ist
und sorgt dafür, dass /dev/log in der frühen
Systemstartphase verwendet werden kann. Andere Init-Systeme ohne /dev/log
verursachen keine Fehler, was identisch zur Meldungsbehandlung mit dem
Systemaufruf openlog(3) ist. Der Befehl logger(1) hat vor
Version 2.26 openlog verwendet und war daher nicht in der Lage, an
Unix-Sockets gesendete und verloren gegangene Meldungen zu erkennen.
- Der Standardmodus ist auto. Wenn Fehler deaktiviert sind, werden
verlorene Meldungen nicht übertragen, wodurch der Aufruf von
logger (1) einen erfolgreichen Rückgabewert liefert.
- -T, --tcp
- verwendet nur ein Datenstromprotokoll (TCP). Standardmäßig
wird versucht, zum in /etc/services definierten Port syslog-conn zu
verbinden, welcher oft 601 ist.
Siehe auch --server und --socket, um anzugeben,
wohin verbunden werden soll.
- -t, --tag
Markierung
- versieht jede zu protokollierende Zeile mit der angegebenen
Markierung. Die Standardmarkierung ist der Name des im Terminal
angemeldeten Benutzers (oder ein auf der effektiven Benutzerkennung
basierender Benutzername).
- -u, --socket
Socket
- schreibt auf den angegebenen Socket statt auf den
Systemprotokoll-Socket.
- --
- beendet die Argumentliste und ermöglicht dadurch, dass die
Meldung mit einem Bindestrich (-) beginnen kann.
- -V, --version
- zeigt Versionsinformationen an und beendet das Programm.
- -h, --help
- zeigt einen Hilfetext an und beendet das Programm.
Das Dienstprogramm logger gibt 0 bei Erfolg und >0
zurück, wenn ein Fehler aufgetreten ist.
Zulässige Einrichtungsnamen sind:
-
auth |
authpriv |
für Sicherheitsinformationen sensitiver Art |
cron |
daemon |
ftp |
kern |
kann nicht aus dem Prozess auf Anwendungsebene generiert werden,
wird automatisch in user umgewandelt |
lpr |
mail |
news |
syslog |
user |
uucp |
local0 |
bis |
local7 |
security |
veraltetes Synonym für auth |
Gültige Stufennamen sind:
-
emerg |
alert |
crit |
err |
warning |
notice |
info |
debug |
panic |
veraltetes Synonym für emerg |
error |
veraltetes Synonym für err |
warn |
veraltetes Synonym für warning |
Für die Prioritätsreihenfolge und beabsichtigte
Zwecke dieser Einrichtungen und Stufen, siehe syslog(3).
Der Befehl logger sollte zu IEEE Std 1003.2
(»POSIX.2«) kompatibel sein.
logger System rebooted
logger -p local0.notice -t HOSTIDM -f /dev/idmc
logger -n loghost.example.com System rebooted
Der Befehl logger ist Teil des Pakets util-linux, welches
aus dem
Linux
Kernel-Archiv heruntergeladen werden kann.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Mario Blättermann <mario.blaettermann@gmail.com> und Helge
Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer.