cron nicht in /var/log/messages loggen lassen

fehlt wasgeht sogutsehr guthat geholfen (No Ratings Yet)
Loading ... Loading ...
Werbung




cron – der Terminkalender

cron ist schon seid je her in Linux integriert und führt zu vorgegebenen Zeiten bestimmte Arbeiten aus, wie z.B. das Starten eines Programmes und irgendetwas zu erledigen. Dieses Starten hinterlässt jeweils einen Eintrag in der zentralen Log-Datei /var/log/messages. Wenn nun bestimmte Programme alle 5 Minuten aufgerufen werden sollen, dann hinterlassen sie auch alle 5 Minuten einen Eintrag in der Log-Datei. Dies macht diese dann relativ schnell unübersichtlich.

syslog-Dämon

Gesteuert wird dieses Verhalten von cron über den syslogd Dämon, dieser verwaltet die System Logfiles. Sämtliche Systemprogramme geben ihren Logfile Eintrag, der gespeichert werden soll, diesem Dämon. Dieser entscheidet dann anhand bestimmter Konfigurationsparameter, in welche Logfiles der Eintrag gespeichert werden soll. Hin und wieder speichert er Logfile-Einträge auch in mehrere Logfiles ab.

Hier wird beschrieben, wie die Konfiguration der cron-Protokollierung mit dem syslogd-ng Dämon verändert wird, so dass alle Cron-Logeinträge in die Datei /var/log/cron laufen.

syslogd-ng

syslogd-ng hat seine Konfigurationsdatei typischerweise im Verzeichnis /etc/syslogd-ng. Die Konfigurationsdatei nennt sich syslogd-ng.conf. Hier ist das Verhalten des Syslog-Dämons hinterlegt.

Filter

Zunächt muss geprüft werden, ob der Filter des crons existiert. Es muss folgende Zeile in dieser Konfigurationsdatei existieren (typischerweise zu Beginn bei den Filterdefinitionen):

filter f_cron { facility(cron); };

Danach muss dem Syslog-Dämon noch mitgeteilt werden, was mit diesem Filter passieren soll, also wohin die Logs von cron geschrieben werden sollen. Dies geschieht mit folgenden 2 Zeilen, die meist schon vorhanden, aber auskommentiert sind:

destination cron { file("/var/log/cron"); };
log { source(src); filter(f_cron); destination(cron); };

Beim Abspeichern würde nun der syslog Dämon eine Log-Datei /var/log/cron anlegen und die cron-Logs dahinspeichern. Allerdings zusätzlich zu /var/log/messages, d.h. alle Einträge würden doppelt geloggt werden. Dies kann nun in der selben Konfigurationsdatei verhindert werden. Hierzu ist die Veränderung einer Konfigurationszeile nötige.

Geändert werden muss:

filter f_messages { not facility(news, mail) and not filter(f_iptables); };

in

filter f_messages { not facility(news, mail) and not filter(f_iptables) \
and not filter(f_cron); };

Diese geänderte Konfigurationsdatei muss nun gespeichert werden und der syslogd-Dämon neu gestartet werden

rcsyslogd restart

/var/log/cron

Bei Neustart wird die neue Logdatei automatisch angelegt. Prüfen Sie nun, ob die Einträge korrelt laufen

crontab -e

speichern Sie die aktuelle Crontab ab und verlassen Sie den Editor wieder. Nun sollten die Bearbeitungshinweise in der Logdatei /var/log/cron und nicht mehr in der /var/log/messages hinterlegt sein.

logrotate – /var/log/cron komprimieren

Aber auch diese Datei wird irgendwann immer grösser. Die meisten Linux-Systeme bieten aber das komprimieren der Logdateien ab einer bestimmten Grösse an.

Bearbeitet werden muss die Konfigurationsdatei:

/etc/logrotate.d/syslog

Es muss in der Zeile, in der die Logdatei /var/log/messages steht nur noch der Eintrag der neuen Logdatei /var/log/cron hinzugefügt werden. Der Logrotate-Dienstes wird automatisch aufgerufen und übernimmt die geänderten Daten sofort. Die Cron Datei wird dann nach den gleichen Parametern wie die /var/log/messages Datei behandelt und komprimiert.

bisherige Suchbegriffe:

  • crontab log


Werbung


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>