postrotate und cron
Servus,
Zusammenfassung für ungeduldige: script in cron.hourly schein alle 10
Minuten aufgerufen zu werden, und logrotate scheint im postrotate-block nur
die dritte von vier Zeilen auszuführen, und das ohne das rotiert wurde.
Langfassung:
Ich habe vor einiger Zeit mal awstats eingerichtet, hat auch alles geklappt.
In der Zwischenzeit sind mir immer mal wieder bounces von postfix
aufgefallen, die angeblich von www-data@(none) bzw. root@(none) und
ähnlichen Absendern stammen sollten. Heute konnte ich endlich mal die Zeit
finden das zu beheben (/etc/mailname enthielt (none)), soweit so gut.
Prompt kam die erste Meldung vom cron-script zu apache2, welches mit
mitteilte das awstats über fehlende Berechtigungen beim lesen des logs
klagen würde.
Die /etc/logrotate.d/apache2 sieht wie folgt aus:
> /var/log/apache2/*.log {
> weekly
> missingok
> rotate 52
> compress
> delaycompress
> notifempty
> create 644 root adm
> sharedscripts
> postrotate
> /etc/init.d/apache2 reload > /dev/null
> /usr/share/awstats/tools/logresolvemerge.pl \
> /var/log/apache2/access.log* \
> /var/log/apache2/ssl_access.log* > \
> /var/log/apache2/all.log
> /usr/lib/cgi-bin/awstats.pl -config=awstat.conf -update
> endscript
> }
all.log hatte keine Berechtigungen, also hab ich all.log durch
/tmp/apache2.log ersetzt (in postrotate und der awstats.conf). Ein
su www-data und awstats-update brachte die Gewissheit, das jetzt alles
funktioniert. Zur Sicherheit noch ein rm /tmp/apache2.log hintendran und die
Datei einmal händisch löschen, und schon dürfte alles laufen. Dachte ich
zumindest.
Seit dieser Änderung bekomme ich alle 10 Minuten eine Mail von cron, in der
awstats nun meckert das es /tmp/apach2.log nicht geben würde. Stimmt ja
auch.
Die Frage ist: Woher weiß das awstats, es sollte doch garnicht aufgerufen
werden?
logrotate -d ergibt:
> <snip>
> considering log /var/log/apache2/access.log
> log does not need rotating
> considering log /var/log/apache2/error.log
> log does not need rotating
> considering log /var/log/apache2/other_vhosts_access.log
> log does not need rotating
> considering log /var/log/apache2/ssl_access.log
> log does not need rotating
> not running postrotate script, since no logs were rotated
Ich habe zwar zu postrotate nur Beispiele im Netz gefunden, die ein script
aufrufen, aber mal abgesehen das dann ja Syntax einfach auf postrotate =
scriptname reduziert werden könnte, und endscript keinen Sinn hätte, ist es
ja auch die dritte Zeile der Befehlsfolge, die diese Meldung ausgibt. Die
zweite Zeile gibt weder eine Fehlermeldung in der Mail, noch hat sie
irgendwelche Fehler ausgespuckt als ich sie manuell gestartet habe.
--
MfG usw.
Werner Mahr
Reply to: