Ejemplo de como rotar archivos de log con Logrotate
Logrotate es un demonio que se ejecuta de forma autónoma para que los archivos de LOG de nuestras aplicaciones “roten”.
En /etc/logrotate.conf podemos ver la conficuracion por defecto que se tiene, y en /etc/logrotate.d todos los logrotate que existen para las aplicaciones del sistema.
Si se quiere fijar una configuración concreta para un aplicativo concreto, se debe ir a la carpeta /etc/logrotate.d y crear un archivo nuevo con la configuración específica.
Un ejemplo de configuración específica para un fichero de log que tenemos en un servidor (/etc/logrotate.d/ralfjones-logrotate) seria el siguiente:
/var/log/nginx/ralfjones/ralfjones.log {
daily #realice la comprobación cada día
missingok #Si falta el archivo de registro, continúe con el siguiente sin generar error
notifempty #No hara rotación si el archivo ralfjones.log está vacío
rotate 1 # Numero de veces que rotara el archivo
dateformat .%Y-%m-%d-%s # formato de fecha
dateext #la extencion del archivo en formato de fecha
compress #Genere un fichero gzip del log rotado
lastaction #Realice ciertas tareas despues de ejecutada la rotacion
_DIR=/home/ralfjones/ralfjones.log
if [ ! -d "$_DIR" ];then
mkdir -p "$_DIR"
fi
_DATE=$(date +%Y-%m-%d-%s)
mv -f /var/log/ralfjones/ralfjones.log.$_DATE.gz/ $_DIR
chown -Rfv ralfjones:ralfjones $_DIR
/etc/init.d/nginx reload >/dev/null 2>&1
endscript
}
Para comprobar la configuración establecida para este log, se debe ejecutar:
logrotate -fv /etc/logrotate.d/ralfjones-logrotate
En mi caso especial logrotate no tiene la opcion de rotar por hora por lo que se debe realizar un cron y asi hacer la rotacion cada hora, editando el crontab quedo asi dicho cron:
10 * * * * /usr/sbin/logrotate -fv /etc/logrotate.d/video.sena.edu.co
Esto se ejecutara todos los dias cada 10 minutos de cada hora.
parta ver mas detalles de las opciones que ofrece esta herramienta se puede dirijir a http://www.linuxcommand.org/man_pages/logrotate8.html
En /etc/logrotate.conf podemos ver la conficuracion por defecto que se tiene, y en /etc/logrotate.d todos los logrotate que existen para las aplicaciones del sistema.
Si se quiere fijar una configuración concreta para un aplicativo concreto, se debe ir a la carpeta /etc/logrotate.d y crear un archivo nuevo con la configuración específica.
Un ejemplo de configuración específica para un fichero de log que tenemos en un servidor (/etc/logrotate.d/ralfjones-logrotate) seria el siguiente:
/var/log/nginx/ralfjones/ralfjones.log {
daily #realice la comprobación cada día
missingok #Si falta el archivo de registro, continúe con el siguiente sin generar error
notifempty #No hara rotación si el archivo ralfjones.log está vacío
rotate 1 # Numero de veces que rotara el archivo
dateformat .%Y-%m-%d-%s # formato de fecha
dateext #la extencion del archivo en formato de fecha
compress #Genere un fichero gzip del log rotado
lastaction #Realice ciertas tareas despues de ejecutada la rotacion
_DIR=/home/ralfjones/ralfjones.log
if [ ! -d "$_DIR" ];then
mkdir -p "$_DIR"
fi
_DATE=$(date +%Y-%m-%d-%s)
mv -f /var/log/ralfjones/ralfjones.log.$_DATE.gz/ $_DIR
chown -Rfv ralfjones:ralfjones $_DIR
/etc/init.d/nginx reload >/dev/null 2>&1
endscript
}
Para comprobar la configuración establecida para este log, se debe ejecutar:
logrotate -fv /etc/logrotate.d/ralfjones-logrotate
En mi caso especial logrotate no tiene la opcion de rotar por hora por lo que se debe realizar un cron y asi hacer la rotacion cada hora, editando el crontab quedo asi dicho cron:
10 * * * * /usr/sbin/logrotate -fv /etc/logrotate.d/video.sena.edu.co
Esto se ejecutara todos los dias cada 10 minutos de cada hora.
parta ver mas detalles de las opciones que ofrece esta herramienta se puede dirijir a http://www.linuxcommand.org/man_pages/logrotate8.html
Comentarios
Publicar un comentario