PDA

Bekijk de volledige versie : Cron und SysLog



rj.2001
25-07-2008, 14:29
Hallo Gemeinde,

gibt es evtl. eine Möglichkeit dem Cron es abzugewöhnen Einträge in dem SysLog vorzunehmen?
Mein SysLog füllt sich aller 5 Minuten mit folgenden Einträgen:

Jul 25 15:20:01 /opt/sbin/cron[20912]: (root) CMD (run-parts /opt/etc/cron.5mins # aller 5 Minuten)
Mir schwebt da eher vor, das der Cron nur Einträge im Fehlerfall macht, wenn z.B. das Script run-parts nicht mehr vorhanden ist. O.ä.

Hat da jemand eine Idee?

Danke Euch

newbiefan
25-07-2008, 14:45
einfach die Eintraege aus der Crontab nehmen. Nur die wirklich benoetigten stehen lassen.

wengi
25-07-2008, 19:22
Hi,

diese run-parts-Geschichte habe ich inzwischen auch komplett rausgenommen.
Schreib Deine cronjobs direkt in die crontab, wie newbiefan das bereits vorgeschlagen hat.

wengi

rj.2001
26-07-2008, 23:51
Hallo,

Dumm ist nur folgendes:
* Auf meinem Router läuft ein WEB-Server
* aller 5 Minuten wird ein Script gestartet, welches folgendes durchführt:

Prüfen ob manuelles Trennen durch Benutzer erfolgte
wenn nicht, dann prüfen ob WAN noch aktiv ist
wenn WAN nicht aktiv, dann noch 3x aller 5 Minuten testen
sollte keine Besserung des WAN-Zustandes erfolgen, dann einen Neustart des Routers durchführen
dieser Vorgang wird insges. 3x durchlaufen, stellt sich bis dahin keine Besserung ein, dann wird das Script verlassen --> evtl. Fehler beim Provider und nicht im Router


hierbei macht es keinen Sinn, die Ausführung aller 10 Minuten o.ä. zu stellen, da insgesamt schon bei 5 Minuten Abstand eine Differenz von 45 Minuten zustande kommt, bevor das Script entgültg verlassen wird.

Weiterhin prüfe ich aller 5 Minuten, ob der WEB-Server und MySQL noch laufen. Wenn nicht restart der jeweiligen Anwendung...

Bewirken sollen diese Scripte, dass der WEB Server komplett und auch alles andere spätestens nach 5 Minuten im Fehlerfall wieder zur Verfügung stehen.
Unnötige Einträge habe ich in der crontab nicht drin stehen, da ich die crontab nur mit Einträgen gefüllt habe, welche ich tatsächlich benutze...

So, es muss doch aber eine möglichkeit geben, dem Cron es abzugewöhnen im SysLog rumzuschreiben...
Kann man evtl. durch ein Suchscript im Syslog (/tmp/syslog) bei laufenden Betrieb die Cron-Einträge wieder rausnehmen (auch wieder via Cron jedoch aller einer Stunde)... ist nur so ne dumme Idee.

Mir schwebt da vor die /tmp/syslog aller einer Stunde zu durchsuchen und alle Einträge, welche "/opt/sbin/cron" und "CMD (run-parts" enthalten zu löschen...

Ciao

newbiefan
27-07-2008, 20:05
naja, wennst einen Script schreiben kannst der einen Reboot uebersteht, solllte ein Script der die unerwuenschten Eintraege aus der syslog loescht, kein Problem fuer dich darstellen. :D

Jedenfalls erscheint mir das viel zu kompliziert, wieso WAN ueberprufen? Bei mir ist es noch nie vorgekommen, dass ploetzlich WAN nicht geht - der Asus laeuft 24/7 seit Monaten....
Ich haette das einfacher gemacht, einfach pruefen ob der Prozess laeuft.
Dazu reicht ein simpler Script einfach in einer Endlosschleife mit sleep dazwischen. Und der Aufruf vom Script mit & , damit der Script im Hintergrund laeuft.
Und dann auch noch 3x pruefen (warum eigentlich?) - wenn dein Name nicht aufgeloest wird, ist es ein ISP Problem, da brauch ich doch nicht ewig zu probieren und warten.
Falls es extrem wichtig ist, dass der Webserver immer erreichbar ist, nimmt man sowieso keinen Router........

Gerdi
29-09-2009, 20:54
Auf gewöhnlichen Computers ist es kein Problem solche Einträge zu filtern.
(In debian mir rsyslog: Toll!!)

In debian filtere ich jede Minute solche Einträge, die dann gar nicht erst in syslog erscheinen (insbesondere cronjobs).

In Olegs tollen Paketen sind zwei, welche das auch ganz locker beherrschen sollten:
Syslog-ng und metalog.
(Spitze zur Filterung von genau solchen Eiträgen, VOR dem Schreiben!!!)

Ich weiss allerdings nicht, ob der crond mit der Option kompiliert ist auf syslog zu schreiben.

Ich habe schon einmal syslog-ng installiert.
Da steht man solle alle Referenzen von "klogd" und "syslogd" in "inittab" entfernen.

Leider gibt es kein inittab.
Deshalb weiss ich nicht genau, wie sich das Paket die Unterdrückung von "klogd" wünscht.

Dann könnte ich das Ganze einmal ausprobieren.

Gerdi
30-09-2009, 12:28
Übrigens:

Es hat geklappt!
(package syslog-ng, kille klogd beim startup, blocke init.d/syslogd [chmod a-x])

Mit der Hinzufügung

and not match("5mins")

fliegen alle entsprechenden Einträge aus "messages" und "syslog" hinaus.

(Aufpassen: syslog-ng stop killt nicht alle jobs. killall muss hinzugefügt werden.)