PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : exim kennt root postfach nicht



xplod
29.05.09, 19:52
Hallo zusammen.

Leider nutze ich auf meinem Server SA24, welches ein Problem hervorruft:
Wenn es ein Problem bei einem Cron Job gibt wird sofort eine Mail an root@(provider_servertag) gesendet. Diese kennt mein System nicht.
Leider habe ich ihn nur überredet bekommen, die Mails an ein Konto auszuliefern. Aber da ich keine Lust habe 3 Mails pro Minute vom Cron zu bekommen würde ich gerne alle Nachrichten einfach direkt ins Nirvana laufen lassen. Wie kann man das mit Exim machen?

Ein Alias root:/dev/null wollte exim nicht annehmen.

Gruß
Dirk

maikthiel
29.05.09, 20:44
Hallo, Dirk!


Ein Alias root:/dev/null wollte exim nicht annehmen.

Ja, das ist zu erwarten, weil die Aliases ja "local parts" der Mailadresse zu Systembenutzern zuordnen.

Für deinen Wunsch würde ich einen entsprechenden Router und zugehörigen Transport-Abschnitt in die exim-Konfiguration einbauen, in etwa:


begin routers
[...]
mail_an_root:
domains = (provider_servertag)
local_parts = root
driver = accept
transport = devnull
[...]
begin transports
devnull:
driver = appendfile
directory = /dev/null


Damit wird für Mails an diesen Empfänger der Transport nach /dev/null ausgeführt. Bei Bedarf kann man die Bedingungen, unter denen der Router angewendet wird, auch noch verfeinern, dazu gibt die Exim-Doku Auskunft.

MfG

Maik

xplod
29.05.09, 21:10
Vielen Dank für deine Hilfe!
Damit konnte ich das Problem beheben. Jetzt muss ich nur noch hoffen, dass mir SA24 nicht die Konfiguration zerschießt :-)

Nur ein Tipp für alle anderen, die das selbe Problem haben:
"directory = /dev/null" funktioniert bei mir nicht (weil er dann /dev/null/temp.xyz anlegen will)
Einfach durch "file = /dev/null" ersetzen...

maikthiel
29.05.09, 21:35
Nix, zu danken, und Danke auch im Namen des Forums für die Rückmeldung.


Nur ein Tipp für alle anderen, die das selbe Problem haben:
"directory = /dev/null" funktioniert bei mir nicht (weil er dann /dev/null/temp.xyz anlegen will)
Einfach durch "file = /dev/null" ersetzen

Ja, Asche auf mein Haupt. Ich habe das einfach aus meiner vServer-Konfiguration kopiert, dort allerdings aus dem Bereich Zustellung ins Maildir, daher auch das Directory, in dem für jede Mail eine neue Datei angelegt wird. Für "/dev/null" ist natürlich "file = " fürs Appendfile das Richtige.

Schönen Abend noch,

Maik

Roger Wilco
30.05.09, 10:39
1. Die Konfiguration ist unnötig kompliziert. Für solche Fälle gibt es den blackhole router. http://www.exim.org/exim-html-current/doc/html/spec_html/ch22.html#SECTspecitredli

2. Der Ansatz an sich ist schon fraglich. Wieso behebst du nicht einfach den Fehler, den Cron dir dann per E-Mail sendet oder unterdrückst eine Ausgabe nicht komplett?
Stattdessen alle Mails an root zu verwerfen ist sicherlich eine gute Möglichkeit, um sich irgendwann ins Knie zu schießen.

xplod
19.06.09, 11:41
2. Der Ansatz an sich ist schon fraglich. Wieso behebst du nicht einfach den Fehler, den Cron dir dann per E-Mail sendet oder unterdrückst eine Ausgabe nicht komplett?
Stattdessen alle Mails an root zu verwerfen ist sicherlich eine gute Möglichkeit, um sich irgendwann ins Knie zu schießen.

Die Ausgabe ist in der crontab eigentlich direkt auf /dev/null umgeleitet.
Das Problem sind Kombinationen aus ps | grep | ... und tail | grep | ...
Die Skripte sollen nach Fehlern im Prozess suchen und ihn bei Bedarf killen und neu starten. Wenn aber keine Probleme bekannt sind, schlägt das gepipte (gibt's da ein deutsches Wort für?) grep Fehl, was mir cron unbedingt mitteilen muss. Und ein set x='ps auxw', set y= grep $$y, ... funktionierte nie so richtig gut, dass man sämtliche Fehler ausschließen konnte... Aber ich lasse mich da gerne korrigieren...

Gruß
Dirk

Roger Wilco
19.06.09, 14:15
Du leitest stdout um, aber offensichtlich nicht stderr...