[Tech] logrotate e apache
Tommaso Visconti
t.visconti@cantierecreativo.fi.it
Mar 15 Gen 2008 19:42:42 CET
Christian Surchi ha scritto:
> Non sono sicuro di aver capito bene
ok, dato che il mio italiano fa un po' acqua provo con un esempio pratico :)
Allora, io ho due siti: www.sito.it e www.altrosito.net
I loro log sono rispettivamente in:
/var/log/apache2/www.sito.it
/var/log/apache2/www.altrosito.net
Il problema e' che se il file /etc/logrotate.d/apache2 contiene:
/var/log/apache2/www.sito.it/*.log {
[...]
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}
/var/log/apache2/www.altrosito.net/*.log {
[...]
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}
Apache viene riavviato 2 volte, quindi n volte per n siti.
Le varie opzioni prerotate, postrotate, lastaction, firstaction agiscono
sul blocco tra {} quindi non possono evitarlo.
Io vorrei evitare ri riavviare (o fare il reload) di apache ad ogni
sito, ma sono alla fine di tutto il file (che magari nel frattempo ha
rotato i log di 100 siti!)
Un'idea che mi e' venuta e' quella di utilizzare uno script che viene
lanciato ad ogni rotazione e che riavvia apache se si accorge che e'
l'ultima (ad esempio confrontando un contatore col numero di siti presenti)
Se avete idee migliori sono ben accette :)
> Usare rotatelogs?
boh, non mi sembra faccia qualcosa di diverso da logrotate, anzi, mi sa
che dovrei gestire "a mano" la compressione dei vecchi log.
Maggiori informazioni sulla lista
flug-tech