» SelfLinux » Systemverwaltung » Syslog » Abschnitt 5 SelfLinux-0.12.1
zurück   Startseite Kapitelanfang Inhaltsverzeichnis GFDL   weiter

SelfLinux-Logo
Dokument Syslog  Autor
 Formatierung
 GFDL
 

5 Meldungen selbst erzeugen

Es gibt mehrere Fälle, in denen man selbst Meldungen erzeugen möchte. Denkbar sind beispielsweise Cron-Jobs, die neben dem Verschicken der EMail mit den Script-Ausgaben kurze Erfolgs- oder Mißerfolgsmeldung über Syslog schreiben sollen. Eine weitere Anwendung sind automatisch ausgeführte Scripte, beispielsweise /etc/ppp/ip-up oder rc-Scripte.

Es gibt ein kleines, einfaches Werkzeug, mit dem man Syslog-Meldungen erzeugen kann. Es heißt logger. Diesem Werkzeug kann man über Optionen sagen, wie eine Meldung zu loggen ist. Hier kann man beispielsweise Priority und Facility angeben.

Die wichtigsten Optionen sind:

Option Beschreibung
-i Prozeß-ID mit in die Nachricht schreiben
-p <Fac.>.<Pri.> Angegenene Priorität und Facility
verwenden. Mögliche Werte sind die
gleichen wie die in /etc/syslog.conf
verwendbaren, siehe Abschnitt "Quellen von
Meldungen" und "Priorität von Meldungen".
Wird diese Option nicht angegeben, wird
user.notice verwendet.
-t <Tag> Angegebenes "Tag" verwenden. Meist wird
hier der Name des Scriptes verwendet.

Es gibt zwei Arten, logger aufzurufen. Einmal kann man die Meldungen mit in die Kommandozeile schreiben, direkt hinter die Optionen. Mindestens wenn die Meldung Minuszeichen (-) enthalten könnte, sollte man sie mit -- abtrennen, um zu vermeiden, dass Meldungsteile als Optionen mißinterpretiert werden. Ein Beispiel:

user@linux ~$ logger -i -t MeinProgramm -- Ich bin eine Meldung.

Dies erzeugt dann folgenden Logdatei-Eintrag:

user@linux ~$ logger -i -t MeinProgramm -- Ich bin eine Meldung.
Apr 13 13:02:04 atlas MeinProgramm[6178]: Ich bin eine Meldung.

Die zweite Art des Aufrufes unterscheidet sich in der Art, wie die Meldung übergeben wird. Wird nämlich keine auf der Kommandozeile angeben, liest logger die Standard-Eingabe. Damit kann man also schreiben:

user@linux ~$ echo "Ich bin eine Meldung." | logger -i -t MeinProgramm

was zum gleichen Ergebnis führt. logger geht auch mit mehreren Eingabezeilen korrekt um (jede Zeile wird eine Meldung). In Scripten kann man deshalb beispielsweise komfortabel schreiben:

Beispielscript
    
LOGGER="/usr/bin/logger -t `basename $0`[$$]"

{
  test -e /etc/irgenteinedatei || echo "Error, Datei nicht gefunden!";
  date;
  echo "eine andere Fehlermeldung";
} | $LOGGER
    
    

Dies erzeugt auf elegante Art und Weise folgende Einträge:

/var/log/messages
 
Apr 13 13:20:45 atlas script.sh[6338]: Error, Datei nicht gefunden!
Apr 13 13:20:45 atlas script.sh[6338]: Sat Apr 13 13:20:45 MEST 2002
Apr 13 13:20:45 atlas script.sh[6338]: eine andere Fehlermeldung
     


zurück   Seitenanfang Startseite Kapitelanfang Inhaltsverzeichnis GFDL   weiter