[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: