Next: Recompilieren des Kernels
Up: Systemverwaltung
Previous: Der Batchdämon crond
Das Betriebssystem (der Kernel) und seine Prozesse auf der Benutzerebene (Dämonen, Kinder von init) sind mit keinem Benutzerterminal direkt verbunden. Diese Selbständigkeit wird dann zu einem Problem, wenn ein solcher Prozeß eine Nachricht, beispielsweise eine Fehlermeldung, ausgeben will/muß. Die Kanäle für die Standardausgabe und die Standardfehlerausgabe sind bei den Systemprozessen mit der Gerätedatei /dev/console verbunden. Die Ausgabe für dieses Gerät wird auf dem Bildschirm der Systemconsole direkt ausgegeben; unter X11 kann sie im xconsole-Fenster angezeigt werden.
Im Mehrbenutzerbetrieb ist die Methode, eine Systemmeldung ausschließlich als Fehlermeldung auf die Systemconsole zu schreiben, unbefriedigend. Es kann nicht sichergestellt werden, daß die Meldung von der ,,richtigen`` Person gelesen wird. Die Bildschirmmeldungen lassen sich nicht sichern und gehen so extrem leicht verloren.
Eine sehr umfassende Lösung dieses Problems bietet der syslogd (gesprochen süslog-d) an. Allerdings muß dieser Lösungsweg bereits bei der Programmierung des Systemprogramms eingeschlagen werden. Wegen der eindeutigen Vorteile arbeitet bereits ein großer Teil der Linux-Systemprogramme mit dem syslogd zusammen.
Anstelle der direkten Ausgabe einer Meldung mit fprintf(3) oder einer vergleichbaren C-Bibliotheksfunktion können Systemmeldungen von spezieller Bedeutung mit der syslog(3)-Funktion ausgegeben werden, die Bestandteil der Standardbibliothek des gcc für Linux ist.
Solche Meldungen werden dann automatisch vom syslogd entgegengenommen.
Der syslogd erhält die Nachrichten über das Socket /dev/log und über die Spezialdatei /proc/kmsg. Er liefert die Meldung nach den Regeln aus, die die Systemverwalterin in der Konfigurationsdatei /etc/syslog.conf festgelegt hat.
Zur Klassifizierung gibt die Systemprogrammiererin jeder Syslognachricht zwei Merkmale: Herkunft und Priorität.
Für jede Herkunftskategorie können Nachrichten ab einer bestimmten Priorität auf einen Auslieferungsweg geschickt werden.
Als Herkunft kommen folgende Bereiche in Frage:
Die Prioritäten (von der höchsten zur niedrigsten):
Die Nachrichten können auf vier verschiedene Weisen ausgeliefert werden:
Ein Eintrag in der syslog.conf besteht aus einer Zeile mit einem Herkunft.Priorität-Paar (durch einen Punkt voneinander getrennt) und einer Wegdefinition. In einem Herkunft.Priorität-Paar können auch mehrere Herkunftskategorien durch Komma getrennt aufgelistet werden. Außerdem können mehrere Herkunft.Priorität-Paare durch Semikolon getrennt in einer Zeile für einen Weg angegeben werden. Sowohl Herkunft als auch Priorität können durch einen Asterisk `*' als Wildcard ersetzt werden.
Kommentare können mit dem `#' eingeleitet werden.
# Alle Kernelmessages, sowie die Nachrichten der Sicherheitsdienste # mit der Priorität notice oder höher und alle Nachrichten mit # der Priorität err und höher werden auf der Systemconsole # angezeigt. # Die vertraulichen Nachrichten des Sicherheitsdienstes werden von # dieser Anzeige ausgeschlossen. kern.*;auth.notice;*.err;authpriv.none /dev/console # Alle Nachrichten mit Priorität info und höher, außer den Nachrichten # des Mailsystems und des privaten Sicherheitsdienstes, werden in der # Datei /usr/adm/Logbuch mitgeschrieben. *.info;mail.none;authpriv.none /usr/adm/Logbuch # Die Nachrichten des privaten Sicherheitsdienstes kommen in eine # sichere Datei. authpriv.* /home/she/privat/.sicher/Nachrichten # Alle Nachrichten mit Priorität emerg werden allen eingeloggten # Usern sofort angezeigt, und sie werden an den syslogd eines anderen # Rechners weitergeleitet. *.emerg * *.emerg @soho.lunetix.de # Die Nachrichten der Priorität alert und höher werden den # verantwortlichen Systemadministratoren angezeigt, wenn sie gerade # eingeloggt sind. *.alert root,she # Die kritischen Fehlermeldungen des News- und Mailsystems werden in # der Datei /usr/adm/Kommunikationsstoerung gespeichert uucp,mail,news.crit /usr/adm/Kommunikationsstoerung
Das Linux Anwenderhandbuch