==== Rotación de logs ====
La herramienta que vienen por defecto ya instalada en Centos se llama logrotate. Logrotate es a su vez invocada desde una tarea programada en el cron
El fichero de configuración del logrotate por defecto es logrotate.conf si queremos podemos especificar otros valores para un servicio en particular añadiendo un script dentro de el directorio /etc/logrotate.d/
Por ejemplo un script llamado rotar_logs con el siguiente contenido
#directorio donde están los logs de la aplicación
/home/tomcat/des/logs/*.log
/home/tomcat/pre/logs/*.log
{
weekly
#rotar cada 7 semanas
rotate 7
missingok
compress
notifempty
}
en pro habría que cambiar el rotate 7 por 52 para guardar un año los logs y añadir la opción dateext para guardar el fichero comprimido con la extension de la fecha
Para hacer una comprobación logrotate -d /etc/logrotate.d/rotar_logs
Para forzar la ejecución logrotate -f /etc/logrotate.d/rotar_logs
Para crear la tarea programa en el cron podemos hacerlo de dos formas
** Mediante crontab **
> #crontab -e
# Rotar logs con logrotate a las 3 am
0 03 * * * root /usr/sbin/logrotate /etc/logrotate.conf > /dev/null 2>&1
** Por un script **
mejor aún sería crear un script dentro cron.diary llamado, por ejemplo, logrotate para que se ejecute todos los días
nano /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
==== Referencias ====
* http://rm-rf.es/como-configurar-logrotate-sistemas-red-hat/
* http://lifeonubuntu.com/configuring-log-rotation-of-apache2-and-other-logs/
* http://www.thegeekstuff.com/2010/07/logrotate-examples/
* http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-centos-part-1
* http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-centos-part-2