Logrotate einstellung für mail.log

herbert007

New Member
Hi Leute,

ich bin verzweifelt auf der Suche wo auf meinem Debian 3.1 mit Postfix
die Logroate Einstellung für das mail.log file versteckt ist.
In /etc/logrotate.d/ ist es nicht.

Jemand ne Ahnung?
 
Code:
grep -rl mail.log /etc/logrotate.d
Ich tippe auf /etc/logrotate.d/syslog

Edit: Doch nicht - Debian scheint kaputter als angenommen ;)

2. Edit: Ich finde es echt nicht. Würde also auch gern mal wissen, wie die dinger rotiert werden.
Rotiert werden sie jedenfalls... (Ich weiß immer noch nicht, wieso ich diese ******e auf meinem vserver nicht ersetzt habe)
 
Last edited by a moderator:
Schau mal unter /etc/cron.daily /etc/cron.hourly /etc/cron.monthly oder unter /etc/cron.weekly

Falls vorhanden natürlich.
 
Last edited by a moderator:
Nope. Nichts in den Cron-Jobs drin außer dem Start von logrotate.
Und die Config von logrotate hab ich schon unterm Mikroskop gehabt... ;)

Die File-Liste (dpkg -L) des postfix-Paketes war auch nicht gerade hilfreich. Es ist auch kein File in logrotate.d dabei.
/usr/share/logrotate gibts nicht - da ist also auch nichts (Wäre auch nicht hilfreich, da die logrotate-Config das nicht includen würde).
Die File-Liste für logrotate ist ebenso unergiebig.
 
Last edited by a moderator:
Interessante Herausforderung. Des Rätsels Teillösung: Weil das ganze Logging über syslog geschieht, liegt das Rotieren auch in dessen Verantwortung. Daher mal in /etc/cron.daily/sysklogd nachschauen.

Dort findet man einen Verweis auf
Code:
/usr/sbin/syslogd-listfiles
, welches mit "-a" aufgerufen auch mail.info, mail.warn usw liefert.

Nur wo das mit "-a" aufgerufen wird, ist für mich noch nicht ganz klar...
 
Habe ich mich schon mal in diesem Forum öffentlich drüber gewundert, dass bei Debian anscheinend so viel doppelt drin ist?
Jetzt werden also einige Logs per Syslog und andere per Logrotate rotert... ganz großes Kino - als wenn (wie z.B. bei Fedora) eine Logs-rotierende Instanz nicht ausreichen würde (und gleichzeitig das System übersichtlicher)...
 
Setz doch die schon rotierten Dateien ( .1, .2, .n ...) mal auf Zugriffsrechte 000 . Ich würde erwarten, das spätestens beim nächsten Versuch die Dateien zu rotieren, irgendwo ein Fehler hochploppt (Mail). Hört sich recht unkonventionell an, könnte aber Licht ins Dunkel bringen. :D

Nachteil: Man müsste bis zum nächsten Lauf warten, der wann ist?
-
Hat bei dem logrotate Mechanismus eventuell das Confixx/Plesk oder was auch immer als Admin Software möglicherweise installiert ist, die Finger mit im Spiel?
 
Es läuft keine Admin-Software wie Confixx oder Plesk oder blaa auf der Kiste.

Also in /etc/syslog.conf steht

Code:
#
# First some standard logfiles.  Log by facility.
#

auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
daemon.*                        -/var/log/daemon.log
kern.*                          -/var/log/kern.log
lpr.*                           -/var/log/lpr.log
mail.*                          -/var/log/mail.log
user.*                          -/var/log/user.log
uucp.*                          /var/log/uucp.log

Also auch mail.log, daraus schliesse ich daß das ganze durch den syslog Daemon geloggt wird, aber wo kann ich das einstellen.
Ich will ja auch nur für das mail.log die Daten verändern, da ich einen längeren Zeitraum die Logs behalten will.
 
Last edited by a moderator:
OK, ich glaube wir kommen der Sache auf die Spur:

In "/etc/cron.daily/sysklogd" steht
Code:
test -x /usr/sbin/syslogd-listfiles || exit 0
test -x /sbin/syslogd || exit 0
test -f /usr/share/sysklogd/dummy || exit 0

set -e

cd /var/log
for LOG in `syslogd-listfiles`
do
   if [ -s $LOG ]; then
      savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null
   fi
done

for LOG in `syslogd-listfiles --auth`
do
   if [ -f $LOG ]; then
      chown root:adm $LOG
      chmod o-rwx $LOG
   fi
done

"/usr/sbin/syslogd-listfiles" ist ein Perlscript, das die Dateien aus "/etc/syslog.conf" ermittelt und dann verarbeitet.
Nach Aufruf dieses Scripts erscheint folgende Ausgabe

Code:
/var/log/syslog
/var/log/mail.log
/var/log/mail.info

Also kann man anscheinend einfach in der "/etc/syslog.conf" den Eintrag "mail.log" rausnehmen und eine eigene logroate Konfigdatei erstellen.

Ich werde das mal testen.
 
Last edited by a moderator:
Also kann man anscheinend einfach in der "/etc/syslog.conf" den Eintrag "mail.log" rausnehmen und eine eigene logroate Konfigdatei erstellen.

Ich werde das mal testen.

Das wird nicht funktionieren, weil du dann plötzlich alle Mail-Meldungen in /var/log/syslog landen werden (du konfigurierst den syslog damit um) ... Postfix loggt über syslog, daher solltest du die Einstellungen nicht unbedingt verändern. Du wirst wohl nicht drum herum kommen, ein eigenes logrotate-Script zu erstellen.

(Die permanente Lösung wäre, einen Bugreport gegen das syslog-Package zu schreiben und diesen Missstand kundzutun).
 
Ooh ja. Stimmt.
Naja, daß ich ein eigene Logrotate script brauche, das war ja klar
nur möchte ich nicht Dateien die bereits vom syslogd rotiert wurden und komprimniert wurden nochmals rotieren etc. das wird ja voll kompliziert und unübersichtlich.

Was hälst Du denn davon in der Datei "/etc/cron.daily/sysklogd"

einfach aus der Zeile
Code:
for LOG in `syslogd-listfiles`

ein

Code:
for LOG in `syslogd-listfiles | grep -v "/var/log/mail.log"`

zu machen.
Dann sollte syslog eigentlich loggen, aber nicht mehr rotieren, oder?
Dann könnte ich mit meinem eigenen Logroate Script angreifen??!
Natürlich ist das nur ein workaround!
 
Last edited by a moderator:
Code:
for LOG in `syslogd-listfiles | grep -v "/var/log/mail.log"`

zu machen.
Dann sollte syslog eigentlich loggen, aber nicht mehr rotieren, oder?
Dann könnte ich mit meinem eigenen Logroate Script angreifen??!
Natürlich ist das nur ein workaround!

Klingt gut; dokumentier das aber gut, ansonsten fällst du beim nächsten Update auf die Nase...
 
Back
Top