Rotación y limpieza automatizadas de logs
Mantenga los discos en buen estado automatizando la rotación de logs y la limpieza de archivos antiguos con logrotate y scripts programados basados en find.
Rotación y limpieza automatizadas de logs es una lección gratuita de Linux Command Line & Bash Scripting Mastery en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Linux Command Line & Bash Scripting Mastery, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Linux Command Line & Bash Scripting Mastery incluye 4 lecciones en total.
El problema de los registros que crecen
Los servicios de larga duración escriben registros indefinidamente. Sin administración, llenan el disco y bloquean el sistema. La rotación y la limpieza permiten mantenerlos bajo control.
du -sh /var/log/*Qué hace la rotación de registros
La rotación cambia el nombre del registro actual, inicia uno nuevo y vacío, y conserva un número limitado de copias antiguas comprimidas.
- app.log se convierte en app.log.1
- Las copias antiguas se comprimen con gzip
- Las más antiguas se eliminan
Introducción a logrotate
logrotate es la herramienta estándar de Linux que automatiza la rotación según el tamaño o la antigüedad, definida en /etc/logrotate.d/.
cat /etc/logrotate.confUna configuración básica de logrotate
Un bloque de configuración indica los archivos de registro y la política de rotación.
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
}Comprender las directivas
Directivas habituales:
dailyrota cada díarotate 7conserva 7 archivos antiguoscompresscomprime los registros rotados con gzipmissingokomite el archivo si no existe
Probar sin esperar
Fuerce una ejecución con -f o haga una ejecución de prueba con -d para validar la configuración antes de confiar en la programación.
logrotate -d /etc/logrotate.d/myapp
logrotate -f /etc/logrotate.d/myappScripts postrotate
Muchos servicios mantienen abierto el descriptor del archivo antiguo. Un bloque postrotate indica al servicio que vuelva a abrir su registro después de la rotación.
/var/log/myapp/*.log {
daily
postrotate
systemctl reload myapp
endscript
}Limpiar archivos antiguos con find
Para una limpieza puntual, find junto con -mtime localiza archivos con más de N días y los elimina.
find /var/log/myapp -name "*.log" -mtime +30 -deleteUn script de limpieza seguro
Incluya la limpieza en un script que registre lo que elimina para disponer de un historial de auditoría.
#!/bin/bash
DIR=/var/backups
find "$DIR" -name "*.tar.gz" -mtime +14 -print -delete \
>> /var/log/cleanup.log 2>&1Programar la limpieza
Coloque la rotación en logrotate, que ya se ejecuta mediante cron, y programe los scripts de limpieza personalizados con su propia entrada de crontab.
# crontab -e
30 2 * * * /usr/local/bin/cleanup.shSupervisar el uso del disco
Añada una comprobación que avise cuando una partición supere un umbral para que la limpieza nunca se ejecute demasiado tarde.
USAGE=$(df --output=pcent / | tr -dc "0-9")
[ "$USAGE" -gt 90 ] && echo "Disk over 90%" | mail -s alert rootComprobación rápida
Compruebe sus conocimientos sobre automatización.
Resumen
Ha automatizado la gestión de los registros:
- logrotate rota según la antigüedad o el tamaño con
rotate,compressypostrotate - Valide con
-d/-f - Utilice
find -mtime +N -deletepara la limpieza personalizada - Programe las tareas con cron y utilice alertas de uso del disco como protección
Preguntas frecuentes
¿La lección «Rotación y limpieza automatizadas de logs» es gratis?
Sí — el texto completo de «Rotación y limpieza automatizadas de logs» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Linux Command Line & Bash Scripting Mastery, actualiza a CoddyKit PRO. El curso de Linux Command Line & Bash Scripting Mastery incluye 4 lecciones en total.
¿Qué aprenderé en «Rotación y limpieza automatizadas de logs»?
Mantenga los discos en buen estado automatizando la rotación de logs y la limpieza de archivos antiguos con logrotate y scripts programados basados en find. Practicas Linux Command Line & Bash Scripting Mastery con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Linux Command Line & Bash Scripting Mastery?
No se requiere experiencia previa. Linux Command Line & Bash Scripting Mastery en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Rotación y limpieza automatizadas de logs»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Linux Command Line & Bash Scripting Mastery?
Sí. Cada lección de Linux Command Line & Bash Scripting Mastery incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Programación de tareas con Cron
- Automatización de la administración del sistema
- Proyecto de scripting avanzado
- Rotación y limpieza automatizadas de logs