Marcio Cunha

¿Disco lleno en Linux? Cómo liberar espacio con ncdu

Aprende a auditar inodos, directorios hinchados por logs de contenedores y paquetes huérfanos en servidores de producción usando ncdu y la línea de comandos.

Marcio Cunha•5 min
También disponible en:PortuguêsEnglish
Resumen
  • El comando df muestra el uso general del disco, pero ncdu mapea visualmente qué carpetas consumen todo el almacenamiento.
  • Los inodos agotados impiden crear nuevos archivos incluso con espacio libre, exigiendo auditorías rápidas vía ncdu y find.
  • Los contenedores Docker generan registros voluminosos que inflan directorios del sistema y exigen limpiezas periódicas.
  • Los paquetes huérfanos y cachés de gestores acumulados ocupan gigabytes invisibles que se pueden eliminar de forma segura.
  • Las auditorías preventivas en servidores de producción evitan caídas inesperadas de servicios por falta de espacio.

¿Por qué se llena repentinamente el disco de tu servidor Linux?

Cuando un servidor de producción alcanza el 100% de uso de almacenamiento, las aplicaciones críticas fallan, las bases de datos corrompen transacciones y el administrador entra en pánico. En la práctica, esto significa que el sistema operativo pierde la capacidad de escribir archivos temporales, registros de auditoría y sesiones de usuarios. Saber exactamente dónde quedó el espacio es la diferencia entre un mantenimiento rápido y una madrugada entera de inactividad. Descubrir los culpables del almacenamiento exige ir más allá del comando tradicional df, que solo informa el panorama general, y sumergirse en herramientas visuales centradas en la jerarquía de directorios.

En entornos corporativos y servidores dedicados, el desborde del disco suele ser silencioso. Registros de aplicaciones que nunca rotaron, imágenes antiguas de contenedores y paquetes residuales de actualizaciones pasadas se acumulan en carpetas ocultas. Para quienes gestionan infraestructura, la inspección manual con el clásico du -sh * se vuelve inviable y extremadamente lenta en volúmenes grandes. Es en este escenario donde la utilidad ncdu destaca como la navaja suiza de los administradores de sistemas, ofreciendo una interfaz interactiva basada en texto directamente en la terminal.

¿Qué es ncdu y por qué supera al comando du tradicional?

NCurses Disk Usage (ncdu) es una herramienta de análisis de uso de disco diseñada para ejecutarse en entornos de línea de comandos. En la práctica, escanea la estructura de directorios del sistema de archivos y muestra los resultados en una lista jerárquica organizada, permitiendo navegar entre carpetas usando las teclas de flecha del teclado. Mientras que el comando estándar du arroja cientos de líneas de texto desordenado en pantalla, ncdu ordena todo del mayor al menor consumidor de espacio, facilitando la toma de decisiones inmediata.

Otra ventaja crítica en servidores de producción es la velocidad de escaneo y la capacidad de exportar los resultados para análisis posteriores o comparativos. A diferencia de interfaces gráficas pesadas que exigen conexiones X11 o paneles web complejos, ncdu consume recursos mínimos de CPU y memoria. Esto garantiza que su ejecución no degrade el rendimiento del servidor mientras investigas una emergencia de almacenamiento. Además, si alguna vez te has enfrentado a la falta de espacio en disco provocada por contenedores Docker, ncdu te permite identificar rápidamente qué carpeta del daemon de Docker está devorando valiosos gigabytes.

Cómo instalar y ejecutar ncdu en tu servidor Linux

La instalación de ncdu es rápida en la gran mayoría de las distribuciones Linux modernas, ya que se encuentra en los repositorios oficiales de paquetes. En la práctica, puedes instalarlo con un solo comando utilizando el gestor de paquetes estándar de tu sistema operativo, ya sea Debian, Ubuntu, CentOS o Fedora. Para garantizar que el escaneo cubra todo el sistema de archivos sin restricciones de permisos de acceso, es fundamental ejecutarlo con privilegios administrativos usando sudo.

Para poner la herramienta en acción en tu entorno de producción, sigue los pasos a continuación en la terminal:

  1. Instala ncdu en Debian o Ubuntu ejecutando el comando de actualización e instalación:
    sudo apt update && sudo apt install ncdu -y
  2. Inicia el escaneo completo del sistema raíz desde el directorio principal con permisos elevados:
    sudo ncdu /
  3. Navega por las carpetas usando las teclas de flecha arriba y abajo, presiona d para eliminar un archivo o directorio no deseado y q para salir de la interfaz.

Auditoría rápida de inodos: cuando el disco dice que tiene espacio pero está lleno

Uno de los enigmas más frustrantes para los administradores de Linux es recibir un error de espacio insuficiente al intentar guardar un archivo, incluso cuando el comando df -h indica que hay gigabytes libres. En la práctica, esto ocurre porque el sistema operativo ha agotado los llamados inodos (estructuras de datos internas que almacenan los metadatos de cada archivo, como permisos y ubicación). Cada archivo, directorio o enlace simbólico consume exactamente un inodo, independientemente de su tamaño físico.

Cuando una aplicación genera millones de archivos diminutos —como sesiones web expiradas, colas de correo o archivos temporales de caché—, el límite de inodos del sistema de archivos se alcanza mucho antes de que se agote el espacio en disco. Para diagnosticar esta situación con precisión quirúrgica, debes ejecutar el comando df -i, que muestra la tasa de ocupación de inodos en lugar de los bloques de datos. Si la columna de uso alcanza el 100%, será necesario localizar directorios con un gran volumen de archivos pequeños utilizando herramientas como ncdu o un análisis con el comando find.

Identificando y limpiando registros de contenedores y paquetes huérfanos

Los servidores modernos que ejecutan cargas de trabajo en contenedores sufren frecuentemente con el crecimiento descontrolado de archivos de registro generados por el motor de contenedores. Aunque herramientas como ncdu ayudan a mapear estos directorios abultados —a menudo ubicados en /var/lib/docker—, es fundamental adoptar políticas de mantenimiento estructuradas. Para quienes gestionan entornos complejos, vale la pena revisar estrategias adicionales para gestionar los logs de contenedores con logrotate en Linux y así automatizar la limpieza evitando sorpresas en horas pico.

Otro desagüe invisible de espacio en servidores Linux está compuesto por los paquetes huérfanos y archivos de caché acumulados por los gestores de paquetes durante meses de actualizaciones y compilaciones. Al desinstalar un programa, las dependencias instaladas automáticamente que ya no son necesarias continúan ocupando un valioso espacio en el disco. En el ecosistema Debian/Ubuntu, el comando sudo apt autoremove --purge elimina paquetes huérfanos y archivos de configuración residuales. Del mismo modo, limpiar la caché del gestor con sudo apt clean libera inmediatamente gigabytes de instaladores antiguos (.deb) almacenados localmente. Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre Cómo probar cristal oscilador de cuarzo en osciloscopio.

Consideraciones finales sobre auditoría de almacenamiento y prevención

Mantener la salud del almacenamiento en servidores Linux va mucho más allá de borrar archivos manualmente cuando se dispara una alerta de disco lleno. La adopción de herramientas eficientes como ncdu transforma una tarea reactiva y estresante en un proceso quirúrgico de auditoría rápida y segura. Comprender el comportamiento de los inodos, monitorear el volumen generado por registros y purgar regularmente los paquetes huérfanos garantiza la estabilidad operativa de tu infraestructura.

Para blindar tus servidores contra futuras interrupciones, lo ideal es integrar rutinas automatizadas de monitoreo de espacio e inodos en tu sistema de alertas. Combinando buenas prácticas de limpieza con herramientas de inspección visual, proteges tus aplicaciones contra fallas catastróficas y mantienes el entorno de producción funcionando con la máxima eficiencia.