
Cuando administramos un servidor Linux que da servicio a plataformas educativas (como Moodle u otros LMS), es común encontrarnos con carpetas de log gigantes: archivos como cron o messages ocupando varios gigabytes dentro de /var/log/. Esto afecta el rendimiento, puede llenar el disco y, en el peor de los casos, detener servicios críticos para tus estudiantes.
En este artículo aprenderás, paso a paso, cómo vaciar y optimizar los archivos de log en Linux de forma segura, evitando errores típicos (como borrar archivos abiertos por el sistema) y aprovechando herramientas como logrotate y systemd-journald. Todo con un enfoque práctico para quienes combinan administración de sistemas, aprendizaje autodidacta y tecnología educativa.
¿Por qué /var/log puede crecer tanto?
En un servidor Linux, la carpeta /var/log/ almacena los registros del sistema y de muchos servicios:
messages: mensajes generales del sistema, kernel y servicios.cron: registros de tareas programadas que se ejecutan constantemente (backups, tareas de Moodle, scripts, etc.).- Otros archivos de log de Apache, Nginx, PHP, base de datos, etc.
En un entorno educativo, donde hay muchos accesos, tareas programadas y procesos en segundo plano, los logs pueden crecer hasta varios gigabytes si no se gestionan adecuadamente.
Problemas que puede causar un /var/log gigante
- Disco casi lleno, lo que afecta todo el sistema.
- Baja de rendimiento al leer o escribir en el disco.
- Posible fallo de servicios críticos, como la base de datos o el servidor web.
- Dificultad para analizar los registros si son demasiado grandes.
Vaciar archivos de log sin borrar el sistema
Antes de pensar en borrar archivos, es importante entender que muchos servicios mantienen los logs abiertos. Si borras el archivo con rm, el espacio puede no recuperarse inmediatamente, y algunos servicios seguirán escribiendo en un “archivo fantasma” hasta que se reinicien.
La forma correcta es vaciar el contenido del archivo sin eliminarlo.
Comandos seguros para vaciar logs grandes
Supongamos que tienes estos archivos enormes:
/var/log/cron(por ejemplo, 13G)/var/log/messages(por ejemplo, 6G)
Como root (o con sudo):
sudo -i # si todavía no eres root
# Verifica el tamaño actual
ls -lh /var/log/cron /var/log/messages
Para vaciar el contenido, tienes dos formas seguras y equivalentes:
# Forma 1: usando la construcción de shell
: > /var/log/cron
: > /var/log/messages
# Forma 2: usando truncate
truncate -s 0 /var/log/cron /var/log/messages
Y luego:
ls -lh /var/log/cron /var/log/messages
Verás que ambos archivos siguen existiendo, pero ahora con tamaño 0.
¿Es necesario detener servicios?
En general, no es obligatorio detener rsyslog (u otro daemon de logs) para truncar archivos de log. Sin embargo, si quieres ser más conservador, puedes hacerlo así:
systemctl stop rsyslog
truncate -s 0 /var/log/cron /var/log/messages
systemctl start rsyslog
Nota: En algunas distribuciones el servicio se llama
rsyslog.service, en otrassyslog.
Configurar logrotate para que los logs no vuelvan a crecer sin control
Vaciar los logs es solo un alivio temporal. Para una solución sostenible, necesitas configurar la rotación automática de logs con logrotate.
¿Qué es logrotate?
logrotate es una herramienta que se ejecuta periódicamente (generalmente desde cron) y se encarga de:
- Rotar archivos de log (renombrarlos y crear un archivo nuevo).
- Comprimir logs antiguos.
- Limitar el número de backups.
- Definir políticas por tamaño, tiempo, o ambas.
Ubicación de la configuración de logrotate
Los archivos de configuración suelen estar en:
/etc/logrotate.conf # configuración global
/etc/logrotate.d/ # configuraciones específicas por servicio
Puedes revisar el contenido con:
cat /etc/logrotate.conf
ls /etc/logrotate.d/
En muchas distribuciones encontrarás un archivo como /etc/logrotate.d/syslog o rsyslog que controla messages, cron y otros logs del sistema.
Un ejemplo típico de configuración podría ser:
/var/log/messages /var/log/cron {
weekly
rotate 4
size 50M
compress
missingok
notifempty
}
Ajustes recomendados para entornos educativos
Dependiendo de la carga de tu servidor (por ejemplo, un Moodle con muchos usuarios), puedes ajustar:
size 50M→ cambiar a20Mo menos si el log crece muy rápido.weekly→ cambiar adailyen servidores con mucho tráfico.rotate 4→ aumentar o disminuir el número de archivos históricos según tus necesidades de auditoría.
Por ejemplo, una configuración más agresiva podría ser:
/var/log/messages /var/log/cron {
daily
rotate 7
size 20M
compress
delaycompress
missingok
notifempty
create 0640 root root
}
Probar logrotate manualmente
Después de modificar la configuración, puedes forzar una rotación para comprobar que no haya errores:
logrotate -f /etc/logrotate.conf
Si todo funciona bien, a partir de ese momento la rotación se ejecutará automáticamente según lo configurado.
Controlar el tamaño de los logs de systemd-journald
Además de los archivos en /var/log, si tu sistema usa systemd, es muy probable que también tengas registros binarios gestionados por systemd-journald.
Puedes ver el uso de disco de los logs de journal con:
journalctl --disk-usage
Si encuentras que también ocupan demasiado, puedes limitar su tamaño:
journalctl --vacuum-size=1G
Esto reducirá el total de logs del journal a aproximadamente 1 GB, eliminando los más antiguos.
Para una configuración más permanente, puedes editar el archivo:
/etc/systemd/journald.conf
Y ajustar parámetros como:
SystemMaxUse=1G
SystemKeepFree=500M
Después, recarga el servicio:
systemctl restart systemd-journald
Buenas prácticas para servidores educativos y proyectos de tecnología aplicada a la educación
Si administras un servidor para Moodle, un sistema de tareas, un portafolio digital o cualquier proyecto de tecnología educativa, es importante incorporar la gestión de logs dentro de tu rutina de administración:
Monitoriza el espacio en disco regularmente
Usa comandos como:
df -h
du -sh /var/log/*
para detectar a tiempo qué archivos están creciendo demasiado.
Documenta tus cambios
Cada vez que ajustes logrotate o journald, deja constancia en tu documentación interna. Esto es especialmente útil si estás aprendiendo de forma autodidacta o colaboras con otros docentes/técnicos.
Integra la gestión de logs en tu proceso de formación
Si trabajas con estudiantes de informática, redes o sistemas, aprovechar estos casos reales para enseñar:
- Cómo funcionan los logs.
- Cómo diagnosticar problemas de rendimiento.
- Cómo automatizar tareas con
cronylogrotate.
También es un excelente material para cursos de aprendizaje autodidacta, talleres de Linux básico para docentes o módulos de administración de servidores para plataformas educativas.
Conclusión: Gestionar tus logs es parte de aprender y enseñar mejor con tecnología
Mantener bajo control los archivos de log en /var/log no es solo un tema técnico; es una pieza clave para garantizar que tus plataformas educativas se mantengan estables, rápidas y seguras.
Has visto cómo:
- Vaciar logs grandes con
truncateo: > archivoes más seguro que borrarlos. - Configurar
logrotateevita quecron,messagesy otros archivos crezcan sin límite. - Limitar el tamaño de
systemd-journaldayuda a contener el uso de disco. - Todo esto se integra perfectamente con proyectos de tecnología aplicada a la educación.
Si te interesa seguir aprendiendo de forma autodidacta sobre Linux, servidores y herramientas para mejorar tus clases y cursos en línea, te invito a:
- Explorar más guías prácticas sobre administración de sistemas para educación.
- Aplicar estas técnicas en tus propios proyectos (Moodle, blogs, portafolios, aulas virtuales).
- Compartir lo que aprendes con tu comunidad educativa.
La combinación de tecnología, educación y aprendizaje autodidacta es una de las formas más poderosas de transformar la experiencia de enseñanza y aprendizaje. ¡Da el siguiente paso y sigue profundizando en la administración de Linux al servicio de la educación!
