Solución de la comunidad

Usa ncdu en CasaOS para encontrar qué está ocupando el almacenamiento

A 2024 CasaOS tutorial introduced ncdu as a quick way to find large folders and mystery disk usage.

Usa ncdu en CasaOS cuando necesites encontrar qué carpetas están consumiendo realmente espacio en el disco, pero analiza la ruta correcta del host, no solo un pequeño sistema de archivos del contenedor. En los sistemas Linux actuales, el proyecto original proporciona binarios estáticos, y ncdu 2.x es la forma más rápida de analizar interactivamente el uso del disco.

El tutorial de BigBear de 2024 es útil como introducción, pero no necesitas un contenedor especial de la tienda de aplicaciones para usar ncdu. Para solucionar problemas de almacenamiento, un terminal del host o un contenedor con un destino de solo lectura montado explícitamente ofrece mayor transparencia.

Para qué sirve ncdu

ncdu es un analizador interactivo del uso del disco. Analiza directorios, los ordena por tamaño y te permite explorar las carpetas grandes sin encadenar manualmente du comandos.

La página actual del proyecto ncdu incluye binarios estáticos de ncdu 2.x para x86_64, ARM y AArch64.

Empieza por el sistema de archivos que realmente está lleno

Ejecuta:

df -h

Identifica el montaje con poco espacio libre. Después, analiza ese montaje en lugar de ejecutar ncdu a ciegas desde /.

Analiza una ruta de datos de CasaOS

Ejemplos habituales:

ncdu /DATA
ncdu /media
ncdu /var/lib/docker

La ruta exacta depende de tu instalación. Si sospechas que Docker o los datos de aplicaciones son la fuente, inspecciona directamente esa ubicación.

Ten cuidado al analizar los componentes internos de Docker

/var/lib/docker contiene capas de imágenes, capas de escritura, registros y metadatos. ncdu puede mostrar qué directorios son grandes, pero eliminar manualmente archivos aleatorios de overlay puede corromper el estado de Docker.

Usa comandos de limpieza compatibles con Docker para imágenes, contenedores y cachés, en lugar de eliminar directorios internos de capas desde ncdu.

ncdu en contenedores tiene un límite de visibilidad

Si ejecutas ncdu dentro de un contenedor, solo verá las rutas que montes en ese contenedor. Analizar la raíz del contenedor no revela casi nada sobre el uso total del disco de CasaOS.

Si prefieres Docker, monta la ruta de destino del host como de solo lectura y analiza ese montaje. Mantén desactivada la eliminación mientras realizas el diagnóstico.

Encuentra primero las carpetas grandes de datos de aplicaciones

Las aplicaciones autoalojadas pueden acumular miniaturas, registros, cachés, bases de datos y metadatos descargados. La guía de almacenamiento de Docker explica por qué los datos de aplicaciones del host pueden crecer incluso cuando las imágenes de los contenedores son pequeñas.

Fuentes comunes de consumo elevado de espacio

  • caché de transcodificación multimedia;
  • registros JSON de contenedores;
  • archivos de bases de datos;
  • miniaturas de fotos e índices de aprendizaje automático;
  • carpetas incompletas del cliente de descargas;
  • copias de seguridad antiguas;
  • imágenes de Docker y caché de compilación.

No elimines nada hasta saber quién es el propietario de la carpeta

Usa ncdu para identificar la ruta grande y, después, determina qué aplicación es su propietaria. Detén la aplicación correspondiente antes de eliminar datos que puedan estar escribiéndose activamente.

Usa exclusiones para que los análisis grandes sean más útiles

En un servidor con recursos compartidos de red, copias de seguridad o discos externos montados, analizar el árbol equivocado puede tardar mucho y mezclar almacenamiento no relacionado en un único resultado. Comienza en el punto de montaje exacto que muestra df -h y evita atravesar montajes remotos, a menos que sean el problema.

Para solucionar problemas repetidamente, ncdu puede exportar los datos del análisis, de modo que puedas comparar el crecimiento con el tiempo en lugar de volver a analizar un sistema de archivos enorme en cada sesión.

Comprende los archivos eliminados pero aún abiertos

A veces df indica que el sistema de archivos está lleno, mientras que ncdu no puede encontrar suficientes archivos visibles para explicarlo. Una causa puede ser que un proceso mantenga abierto un archivo que ya se eliminó. La entrada del directorio ha desaparecido, pero los bloques siguen asignados hasta que el proceso cierre el archivo.

Cuando el total de ncdu y df difieren considerablemente, inspecciona los archivos eliminados abiertos con una herramienta como lsof +L1 si está disponible en el host. Reiniciar el servicio responsable puede liberar el espacio después de entender qué lo está ocupando.

Usa ncdu como herramienta de medición, no como política de limpieza

Una caché grande puede ser segura de borrar, mientras que un directorio de base de datos de tamaño similar puede ser crítico. El valor de ncdu consiste en mostrar dónde se ha utilizado el espacio; la aplicación propietaria debería determinar cómo recuperarlo.

Preguntas frecuentes

¿Puede ncdu eliminar archivos?

Sí, pero elimina con precaución. Para los elementos internos de Docker, las bases de datos y los datos administrados por aplicaciones, es preferible usar el propio flujo de limpieza de la aplicación.

¿Por qué ncdu muestra menos espacio que df?

Entre las posibles razones se incluyen archivos eliminados pero aún abiertos, directorios inaccesibles, metadatos del sistema de archivos, instantáneas o datos fuera del montaje analizado.

¿Necesito BigBearCasaOS para instalar ncdu?

No. Es una opción de empaquetado. El proyecto original también proporciona binarios estáticos independientes.

¿Dónde debería comenzar el análisis?

Usar df -h para identificar el montaje completo y, después, analizar esa ruta exacta con ncdu.