logrotate
logrotate es una utilidad de Linux que rota, comprime y elimina archivos de registro para evitar que llenen el disco. Por lo general, se ejecuta una vez al día mediante un temporizador de systemd o una tarea de cron, y lee /etc/logrotate.conf junto con las reglas por paquete en /etc/logrotate.d/.
1Una regla típica
Una regla nombra uno o más archivos de registro y directivas como daily o weekly (la frecuencia), rotate 7 (cuántos archivos antiguos conservar), compress (comprimir archivos antiguos con gzip), missingok (sin error si el archivo no está presente), notifempty (omitir registros vacíos) y postrotate ... endscript (un comando que se ejecuta después de la rotación, por ejemplo, para reabrir el registro).
2copytruncate
Algunos programas continúan escribiendo en el mismo archivo abierto. copytruncate copia el registro y luego trunca el original en lugar de moverlo, por lo que el programa mantiene su descriptor de archivo; es posible que se pierdan algunas líneas escritas durante la copia.
3Pruebas
logrotate -d /etc/logrotate.conf se ejecuta en modo de depuración y solo imprime lo que sucedería. -f fuerza una rotación incluso si no corresponde.
Cómo agregar y probar una regla
- Cree
/etc/logrotate.d/myappcon la ruta del registro y las directivas, por ejemplo, weekly, rotate 4, compress, missingok, notifempty. - Simulación:
sudo logrotate -d /etc/logrotate.d/myapp - Si la salida se ve correcta, fuerce una rotación:
sudo logrotate -f /etc/logrotate.d/myapp - Compruebe el resultado: ls -l del directorio de registros.
Precauciones
- Un patrón de ruta incorrecto puede rotar o eliminar registros de otros programas.
- Los registros administrados por el diario de systemd se limitan en journald.conf, no mediante logrotate.
Artículos relacionados
- journalctl y el diario de systemdCómo leer registros con journalctl, comprobar cuánto espacio utiliza el diario y reducirlo de forma segura con las opciones --vacuum.
- Uso de disco con du y ncduCómo descubrir qué llena un disco de Linux con du y el interactivo ncdu, usando opciones que se limitan a un solo sistema de archivos.
- cron y crontabCómo ejecuta cron las tareas programadas, los cinco campos de tiempo de crontab, dónde se encuentran los archivos del sistema de cron y cómo se comparan los temporizadores de systemd.
Fuentes
- logrotate(8) man7.org
- logrotate(8) (Debian) manpages.debian.org
Última revisión: