= logrotate
== info
* [[https://atareao.es/ubuntu/rotado-de-logs-con-logrotate/]]
* [[https://www.digitalocean.com/community/tutorials/how-to-manage-logfiles-with-logrotate-on-ubuntu-16-04]]
* [[https://stackoverflow.com/questions/20162176/centos-linux-setting-logrotate-to-maximum-file-size-for-all-logs]]
== cli
* ejecutar dry-run:sudo logrotate /etc/logrorate.conf --debug
* ejecutar manualmente o un fichero concreto:sudo logrotate
* status del estado de rotado:cat /var/lib/logrotate/status
* ejecución fichero conf fuera del ciclo habitual del sistema y con su propio fichero de estado:logrotate /home/sammy/logrotate.conf --state /home/sammy/logrotate-state --verbose
=== flags
* ''%%--%%state''
* ''%%--%%verbose''
* ''%%--%%force''
== conf
* **/etc/logrotate.conf**: configuración por defecto
* **/etc/logrotate.d/**: fichero inclusión configuraciones adicionales
== comandos
/var/log/example-app/*.log {
daily
missingok
rotate 14
compress
notifempty
create 0640 www-data www-data
sharedscripts
postrotate
systemctl reload example-app
endscript
}
* ''daily'': rotación diaria
* ''weekly'': rotación semanal
* ''monthly'': rotación mensual
* ''size '': fuerza el rotado del archivo si es superior al especificado. Ignora parámetros anteriores.
* **G**: Gigabytes, **M**: Megabytes, **k**: kilobytes
* ''minsize '': el fichero de log ha de llegar al valor mínimo y cumplir si ciclo de rotación (diario, semanal, mensual)
* ''mazsize '': el fichero de log ha de llegar al valor máximo y cumplir si ciclo de rotación (diario, semanal, mensual)
* ''create [ ]'': se crear un nuevo registro al rotar el más antiguo. Se puede especificar modo, usuario y grupo
* ''rotate '': número de copias o ciclos que se conservan los logs anteriores.
* ''compress'': los registros se guardan con compresión
* ''notifempty'': no rotar si el archhivo está vacío
* ''missingok'': no produce error si no existe el fichero
* ''delaycompress'': pospone la compresión durante 1 ciclo
* ''su '': cambiar el usuario y grupo por defecto de los ficheros de configuración. Necesario si no tiene los owners que espera (por cambio de ubicación de los archivos, p.e.)
* [[https://support.microfocus.com/kb/doc.php?id=7005219]]
* ''sharedscript'': cualquier script se ejecutará solo 1 vez aunque afecte a varios ficheros de log
* ''prerotate''..''endscript'': script que se ejecuta antes de la rotación.
* ''postrotate'' .. ''endscript'': script que se ejecuta después de rotar el log y antes de comprimir