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

Re: Rutina en logrotate para Apache2



El Sun, 16 Jan 2011 14:11:05 +0100, fernando sainz escribió:

> El día 16 de enero de 2011 13:23, Camaleón escribió:
>> El Sun, 16 Jan 2011 01:21:47 +0100, Javier Barroso escribió:

(...)

>>> Cuéntanos si consigues hacer exactamente lo que quieres sólo con
>>> logrotate, yo creo que más bien me haría un cutre-script ... sobre
>>> todo para comprimir todos los logs del año en un fichero .. quizás
>>> como han comentado por aquí usando el postrotate (comprobar que no
>>> exista un fichero comprimido de ese año y luego generarlo)
>>
>> Sí, eso es lo que estaba pensando, tal y como comentaba Fernando, que
>> tendría que tirar de algún script que se encargara de esto, pero tengo
>> que mirarlo con calma porque el "postrotate" se ejecuta tras cada
>> rotación (en mi caso, cada mes) pero sólo debería ejecutar la
>> compresión de los archivos tras 12 rotaciones (que sería 1 año) y no sé
>> bien cómo obtener esa variable (hum, ¿podría usar un "if rotate > 12
>> then gzip"?) O:-).
>>
>>> Saludos
>>> [1] http://httpd.apache.org/docs/2.0/programs/rotatelogs.html
>>
>> Saludos y gracias a los dos por las sugerencias.
>>
>>
> No se exactamente que quieres hacer, pero contar ficheros es fácil. ls
> /dir | wc -l

Je, pues sí, no se me había ocurrido. A ver qué os parece esta "cosa" que 
he preparado (ojo, que no está probado directamente con el logrotate, sólo 
he hecho una prueba "a capela", ejecutando el script directamente sobre un 
directorio con archivos pre-creados):

***
# 20110116 archive old access logs on a per year basis
if [ `ls access.*.log | wc -l` -gt 12 ]; then
    tar -cf access.$(date '+%F').tar.gz access.$(date '+%Y' --date='1 year ago')*.log
    # let's check how it works before deleting
    # rm access.$(date '+%Y' --date='1 year ago')*.log
fi
***

La idea es que el primero de enero de cada año, al ejecutarse la rutina del 
logrotate, el script detecte que ya hay 12 archivos access.*.log y genere el
archivador con los registros del año pasado.

A mí me parece un poco "cutrecillo" pero creo que funcionaría salvo que se 
me haya pasado algo por alto y no me dé cuenta hasta el año que viene O:-)

Si se os ocurre alguna idea o mejora (por ejemplo, cómo añadir 
"elegantemente" en el mismo script los archivos "error.*.log", más allá de 
copiar/pegar el mismo bloque y cambiando el nombre :-P), avisad.

Saludos,

-- 
Camaleón


Reply to: