- lun 27 abril 2015
- linux
- #linux, #logrotate, #logs
Si mueves un log de /var/log no se comprimirán y se borrarán automáticamente al pasar un tiempo. Es fácil decirle a logrotate que lo haga. Si quieres tener tus logs organizados es más fácil de lo que parece. Logrotate es un software que existe preinstalado en los sistemas de Linux más comunes. Solo hay que acceder a /etc/logrotate.d/ para ver todos los ficheros de configuración ya creados.
Un caso para usar logrotate:Tenemos logs web en directorios fuera de /var/log/apache2/ o /var/log/nginx/ . El directorio en concreto es /home/usuario/web/log/ . Queremos ponerle los logs a este usuario en esa carpeta para que pueda consultarlos con sus permisos. Bien un ejemplo de fichero de configuración sería el siguiente.
/home/usuario/web/log/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data usuario
sharedscripts
maxsize 10G
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
Esta configuración es especial para nginx, pero se puede encontrar fácilmente para apache2 buscando en el misma carpeta /etc/logrotate.d/apache2.
La configuración hace un campresión de cada log al día, llegando ha hacer 52 compresiónes antes de borrar la número 53 y crea los logs con los premisos "0640" y para el usuario "www-data" y grupo "usuario".
Luego los pasos para hacer la configuración serian los siguientes:
- Creamos el archivo en /etc/logrotate.d/
- Ejecutamos logrotate para que haga efectiva la configuración.
logrotate -f /etc/logrotate.d/fichero
Si necesitais una información mas detalla la podéis encontrar aquí https://linuxconfig.org/logrotate.