Page 1 of 1

Maillog stoppt nach logrotate

Posted: 2006-10-07 17:39
by ohgott
Hallo,
mein Maillog füllt sich nicht mehr. Und das jedesmal nachdem es planmäßig zusammengepackt wurde. Wenn ich danach syslog und postfix neu starte, läuft es wieder, aber halt nur bis zum nächsten zipen und Neuanfang.

Was läuft denn da wohl falsch?

Re: Maillog stoppt nach logrotate

Posted: 2006-10-07 17:42
by Roger Wilco
Syslog hat noch ein Filehandle auf die alte Datei offen, die du mit logrotate löschst. Schicke nach der Logrotation einfach ein SIGHUP an deinen syslogd, damit er einen neuen Filedescriptor öffnet. Dafür eignet sich die Option postrotate.

Re: Maillog stoppt nach logrotate

Posted: 2006-10-08 12:56
by ohgott
Macht das eigentlich so Sinn? Die Einstellung war so vorgegeben.
Speziell das reload?

Code: Select all

/var/log/mail /var/log/mail.info /var/log/mail.warn /var/log/mail.err {
    compress
    dateext
    maxage 365
    rotate 99
    missingok
    notifempty
    size +4096k
    create 640 root root
    sharedscripts
    postrotate
        /etc/init.d/syslog reload
    endscript
}

Re: Maillog stoppt nach logrotate

Posted: 2006-10-08 13:01
by Roger Wilco
OhGott wrote:

Code: Select all

    rotate 99
Etwas viel für meinen Geschmack, aber anonsten sieht die Konfiguration ok aus. /etc/init.d/syslog sollte natürlich auch das richtige Initskript sein.

Re: Maillog stoppt nach logrotate

Posted: 2006-10-08 13:16
by ohgott
/etc/init.d/syslog ist schon richtig.
Aber das sind so die Einstellungen, die vorgegeben waren und mit denen das ursprüngliche Problem "Maillog füllt sich nicht mehr" auftritt.

Ich habe dort jetzt mal das reload durch restart ersetzt. Mal sehen ob das hilft. Oder wie genau war das mit SIGHUP gemeint? Den Befehl fand ich nicht.

Re: Maillog stoppt nach logrotate

Posted: 2006-10-08 13:26
by Roger Wilco
Der Paramtere reload sollte eigentlich schon dazu führen, dass das Initskript ein SIGHUP an syslog schickt. Du kannst auch selbst des Signal mit `killall -s HUP syslog` schicken.

Re: Maillog stoppt nach logrotate

Posted: 2006-10-11 12:55
by ohgott
Nachdem mein Versuch mit

Code: Select all

    postrotate
        /etc/init.d/syslog stop
        /etc/init.d/syslog start
    endscript
gescheitert ist, versuche ich mal folgendes

Code: Select all

/var/log/mail /var/log/mail.info /var/log/mail.warn /var/log/mail.err {
    compress
    dateext
    maxage 365
    rotate 99
    missingok
    notifempty
    size +4096k
    create 640 root root
    sharedscripts
    postrotate
        killall -s HUP syslog
        /etc/init.d/syslog reload
    endscript
}
Sonst noch Ideen? ;-)

Re: Maillog stoppt nach logrotate

Posted: 2006-10-11 14:08
by daemotron
OhGott wrote:Sonst noch Ideen?
Ja. Hast Du vielleicht /tmp mit noexec gemounted? Logrotate legt für postrotate offenbar dort ein Shellskript an, dass dann aber nicht ausgeführt werden kann... (siehe http://www.rootforum.org/forum/viewtopic.php?t=41643)

Re: Maillog stoppt nach logrotate

Posted: 2006-10-11 14:20
by ohgott
Aha, ja das scheint so zu sein!

Code: Select all

/dev/tmp-loop on /tmp type ext3 (rw,noexec,nosuid,loop=/dev/loop0)
Woher sieht man denn, das dort ein Script ausgeführt werden soll?

Aus den anderen Threads habe ich rausgelesen, das das verwenden eines anderen Verzeichnisses wohl nicht geht?

Was nun? Anders mounten? Anderseits wirds wohl seinen Sinn haben, das dort nichts ausgeführt werden kann, oder?

Re: Maillog stoppt nach logrotate

Posted: 2006-10-11 14:59
by daemotron
Es gibt (außer dem Verzicht auf logrotate) IMHO genau drei Lösungsmöglichkeiten:
  • /tmp nicht mit noexec mounten (ist keine gute Idee - saftey first!)
  • Dafür sorgen, dass im Kontext, in dem logrotate ausgeführt wird, die Variable TMPDIR auf ein Verzeichnis verweist, das auf einer Partition liegt, die nicht noexec gemounted ist, wie z. B.

    Code: Select all

    TMPDIR=/var/tmp
  • Per cronjob /etc/init.d/syslog restart alle paar Minuten ausführen (was auch nicht gerade brilliant ist, da nach einem logrotate schlimmstenfalls für ein paar Minuten nichts gelogged wird)

Re: Maillog stoppt nach logrotate

Posted: 2006-10-11 15:54
by ohgott
Bleibt eigentlich nur Möglichkeit 2.
.. and where TMPDIR gets set is a mystery.