Marcio Cunha

¿Disco lleno de logs? Cómo hallar archivos ocultos e inodes

Aprende a auditar el espacio en disco ocupado por logs antiguos combinando scripts de shell y utilidades avanzadas para liberar inodes agotados.

Marcio Cunha•3 min
También disponible en:PortuguêsEnglish
Resumen
  • El agotamiento de inodes ocurre cuando el sistema de archivos se queda sin identificadores, aun con espacio físico abundante.
  • Comandos tradicionales como du pueden fallar al mapear archivos abiertos por procesos colgados que siguen consumiendo disco.
  • El escaneo con utilidades de línea de comandos permite aislar directorios voluminosos sin impacto en la producción.
  • Los scripts de shell automatizan escaneos periódicos y la purga segura de logs antiguos sin riesgos operativos.
  • El monitoreo continuo de inodes previene caídas repentinas de servicios críticos causadas por falta de punteros libres.

¿Por qué el disco dice estar lleno pero tiene espacio libre?

¿Quién no ha pasado por la frustración de recibir una alerta de disco lleno, borrar gigabytes de archivos y descubrir que el sistema sigue congelado o reclamando espacio? La mayoría de las veces, el culpable no es el volumen de datos en sí, sino el agotamiento de los llamados inodes. En la práctica, un inode es como la ficha de registro de un archivo en el sistema operativo: almacena información vital como permisos, dueño y ubicación física de los datos, pero no el contenido en sí. Cuando creamos millones de pequeños archivos de log, podemos agotar todas las fichas disponibles en la partición mucho antes de que se acabe el espacio físico en bytes. Para evitar sorpresas en entornos de producción, también es fundamental comprender la optimización de infraestructuras, como cuando las métricas de infraestructura se caen y exigen una rápida recuperación del servicio.

Cómo auditar el consumo real usando herramientas de línea de comandos

Cuando el problema es el espacio físico consumido por pilas de logs antiguos, el comando estándar suele ser du, una utilidad que estima el uso de espacio de archivos y directorios. Sin embargo, du puede engañar al tratar con archivos que fueron borrados por el sistema operativo pero siguen abiertos y ejecutándose bajo algún proceso colgado. En la práctica, esto significa que el espacio en disco sigue ocupado porque el sistema operativo mantiene el puntero del archivo activo en la memoria. Para inspeccionar estos archivos fantasma y evitar que saturen el almacenamiento, muchos ingenieros emplean técnicas de transmisión de datos en red, como transmitir archivos comprimidos pesados vía SSH sin saturar el disco local. Combinar escaneos precisos con la identificación de procesos zombis asegura que ninguna área oculta escape de la auditoría.

Desarrollando un script de shell para escaneo y limpieza segura

Para automatizar la búsqueda de logs antiguos e inodes perdidos, podemos escribir un script de shell robusto y seguro. El script a continuación recorre directorios específicos, identifica archivos con más de treinta días de antigüedad y muestra el uso detallado antes de cualquier eliminación. En la práctica, la automatización previene errores humanos causados por el cansancio en operaciones manuales de madrugada. Así es como puedes estructurar el procedimiento de búsqueda y limpieza en tu máquina:

#!/bin/bash
# Directorio objetivo para auditoria de logs
TARGET_DIR="/var/log/old_apps"

echo "Iniciando escaneo de archivos con mas de 30 dias en $TARGET_DIR..."
find "$TARGET_DIR" -type f -mtime +30 -exec ls -lh {} \; | awk '{print $5, $9}'

echo "Verificando inodes restantes en la particion..."
df -i "$TARGET_DIR"

Ejecutar este tipo de rutinas con frecuencia ayuda a mantener la salud del servidor al día, garantizando que el sistema operativo responda con agilidad incluso bajo una fuerte carga de escritura de logs. Además, mantener los servidores operando a temperaturas adecuadas, cuidando que el rack no sufra de sobrecalentamiento y un flujo de aire deficiente, complementa la estabilidad física de la infraestructura.

Buenas prácticas para prevenir el agotamiento futuro de inodes y espacio

Auditar logs antiguos es un excelente remedio, pero crear políticas preventivas es la verdadera clave para la tranquilidad en la administración de sistemas. La mejor estrategia consiste en implementar la rotación automática de logs mediante herramientas nativas como logrotate, que comprime y descarta archivos antiguos de forma programada. En la práctica, esto evita que una sola aplicación cree millones de microarchivos sin control a lo largo de los meses. Combinar scripts de auditoría periódica con alertas automáticas de inodes agotados transforma una operación reactiva y estresante en un proceso predecible, seguro y totalmente bajo control.