0Pricing
Linux Command Line & Bash Scripting Mastery · Lección

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.conf

Una 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:

  • daily rota cada día
  • rotate 7 conserva 7 archivos antiguos
  • compress comprime los registros rotados con gzip
  • missingok omite 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/myapp

Scripts 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 -delete

Un 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>&1

Programar 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.sh

Supervisar 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 root

Comprobació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, compress y postrotate
  • Valide con -d / -f
  • Utilice find -mtime +N -delete para 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

  1. Programación de tareas con Cron
  2. Automatización de la administración del sistema
  3. Proyecto de scripting avanzado
  4. Rotación y limpieza automatizadas de logs
← Volver a Linux Command Line & Bash Scripting Mastery