Maillog stoppt nach logrotate

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
ohgott
Posts: 28
Joined: 2006-03-21 16:21

Maillog stoppt nach logrotate

Post by ohgott » 2006-10-07 17:39

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?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Maillog stoppt nach logrotate

Post by Roger Wilco » 2006-10-07 17:42

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.

ohgott
Posts: 28
Joined: 2006-03-21 16:21

Re: Maillog stoppt nach logrotate

Post by ohgott » 2006-10-08 12:56

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
}

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Maillog stoppt nach logrotate

Post by Roger Wilco » 2006-10-08 13:01

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.

ohgott
Posts: 28
Joined: 2006-03-21 16:21

Re: Maillog stoppt nach logrotate

Post by ohgott » 2006-10-08 13:16

/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.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Maillog stoppt nach logrotate

Post by Roger Wilco » 2006-10-08 13:26

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.

ohgott
Posts: 28
Joined: 2006-03-21 16:21

Re: Maillog stoppt nach logrotate

Post by ohgott » 2006-10-11 12:55

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? ;-)
Last edited by ohgott on 2006-10-11 14:14, edited 1 time in total.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Maillog stoppt nach logrotate

Post by daemotron » 2006-10-11 14:08

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)

ohgott
Posts: 28
Joined: 2006-03-21 16:21

Re: Maillog stoppt nach logrotate

Post by ohgott » 2006-10-11 14:20

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?

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Maillog stoppt nach logrotate

Post by daemotron » 2006-10-11 14:59

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)

ohgott
Posts: 28
Joined: 2006-03-21 16:21

Re: Maillog stoppt nach logrotate

Post by ohgott » 2006-10-11 15:54

Bleibt eigentlich nur Möglichkeit 2.
.. and where TMPDIR gets set is a mystery.