Configurazioni logrotate automatiche
medio
Introduzione
Lo scopo di questo tutorial è quello di far generare automaticamente una configurazione per logrotate utilizzando buildout, evitando così di:
- effettuare manualmente noiose configurazioni
- commettere errori
Utilizzare logrotate consente di evitare che i log crescano troppo determinando uno spreco di spazio su disco.
Prerequisiti
In questa guida supponiamo di avere nel nostro buildout uno zeo server ed una serie di zeo client seguendo una ben precisa convenzione di nomi, così da rendere automatizzabile la procedura.
Passo passo
La convenzione che abbiamo adottato richiede che lo Zeo server sia definito in una sezione [zeo] e tutti gli Zeo client sono definiti in sezioni del tipo [instance*].
Ecco qui di seguito la configurazione del nostro buildout.cfg (in grassetto le parti da aggiungere).
[buildout]
...
parts =
...
logrotate
[zeo]
recipe = plone.recipe.zope2zeoserver
...
[instance01]
...
[instance02]
...
[logrotate]
recipe = collective.recipe.template
input = templates/logrotate.conf
output = ${buildout:directory}/etc/logrotate.conf Questa configurazione inoltre presuppone la presenza di un file da utilizzare come template per la generazione automatica. Crea una cartella chiamata templates e metti all'interno un file chiamato logrotate.conf con il seguente contenuto:
rotate 4
weekly
create
compress
delaycompress
${buildout:directory}/var/log/zeo.log {
postrotate
${buildout:directory}/bin/zeo logreopen
endscript
}
# Zope instances
${buildout:directory}/var/log/instance*.log {
postrotate
for i in ${buildout:directory}/var/instance*.pid ; do
/bin/kill -USR2 $(cat $i)
done
endscript
} Lanciando lo script buildout otterrai nella cartella etc all'interno del nostro buildout il risultato con la configurazione creata in automatico e pronta per essere utilizzata, determinando così un risparmio in termini di tempo.
