[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