Guía Definitiva del Comando df en Linux

Resumen Operativo

Cuando la temida alerta No space left on device interrumpe las operaciones de un entorno de producción, la primera línea de defensa para cualquier administrador es la utilidad df (disk filesystem). A lo largo de esta guía desglosaremos desde la visualización de volúmenes en formatos comprensibles hasta el filtrado avanzado de sistemas de archivos virtuales. Además, abordaremos un escenario crítico habitual: la imposibilidad de escribir nuevos datos por saturación de inodos a pesar de contar con espacio en gigabytes, junto con la clásica discrepancia entre las métricas de df y du ocasionada por descriptores de archivos retenidos.

1. Inspección Básica de Capacidad y Formato Legible (df -h)

La utilidad df examina el estado global de espacio disponible en cada uno de los sistemas de archivos montados en el kernel.
Si se ejecuta de forma aislada, reporta métricas tabulares basadas en bloques individuales de 1KB (1K-blocks), formato que complica una interpretación rápida de la capacidad real en servidores modernos.
⚙️ [Parámetros Esenciales]

-h : Convierte los bloques brutos en unidades intuitivas como Kilobytes (K), Megabytes (M) o Gigabytes (G).
-T : Incorpora una columna adicional detallando el formato del filesystem (ext4, xfs, overlay, etc.).
-i : Modifica la visualización para evaluar la estructura de inodos en lugar de los bloques de almacenamiento.
-t : Limita la salida exclusivamente al tipo de sistema de archivos especificado.
-x : Omite de la lista aquellos sistemas de archivos que coincidan con el tipo indicado.

Ejecución estándar de df

Al invocar df -h, el modificador -h (–human-readable) reajusta dinámicamente las magnitudes numéricas para simplificar su análisis inmediato.
Como se aprecia en la captura, las cifras extensas de 1KB son procesadas automáticamente a potencias de 1024 expresadas en Megabytes (M) y Gigabytes (G), agilizando el diagnóstico preventivo de saturación en las particiones.

Salida legible con df -h

2. Depuración de Volúmenes Virtuales y Filtrado Selectivo (df -h -x / -t)

La instrucción df -h -x tmpfs -x devtmpfs -x squashfs recurre al parámetro de exclusión repetida -x (–exclude-type) con el propósito de limpiar el reporte de elementos en memoria o de solo lectura.
En distribuciones contemporáneas como Ubuntu, la presencia masiva de contenedores Snap montados sobre squashfs, sumada a las áreas volátiles en RAM (tmpfs, devtmpfs), suele inundar la terminal con información que distrae de los discos físicos reales.
Gracias a este filtro, la salida queda depurada, visibilizando únicamente las unidades de almacenamiento persistente y los puntos de anclaje de mayor relevancia.

Exclusión de sistemas de archivos virtuales con df

Por su parte, la variante df -h -t ext4 se apoya en -t (–type) para concentrar el análisis exclusivamente en particiones estructuradas con un formato determinado.
Al enfocar el rastreo en implementaciones como ext4, el administrador obtiene una perspectiva directa y despejada de los volúmenes principales del sistema operativo sin lidiar con el ruido de otras arquitecturas de almacenamiento secundarias.

Filtrado exclusivo de particiones ext4

3. Capacidad Disponible pero Fallo al Guardar: Diagnóstico de Inodos (df -i)

Para reproducir de forma controlada el comportamiento de la tabla de inodos, preparamos un directorio aislado en /tmp poblado con una serie de diez archivos vacíos mediante expansión de llaves.

Preparación del entorno de pruebas con mkdir y touch

El comando df -i /tmp/df-test permite auditar la asignación de estructuras de metadatos o inodos en la partición donde reside la ruta señalada.
Es común olvidar que un disco no solo requiere bloques libres de almacenamiento; si la tabla de punteros de metadatos alcanza el límite absoluto (IUse% al 100%), el sistema rechazará la creación de nuevos archivos sin importar cuántos gigabytes queden disponibles.
El informe generado desglosa Inodes (total provisionado), IUsed (registros en uso) e IFree (entradas disponibles), constituyendo el método ideal para detectar la proliferación excesiva de archivos pequeños o sesiones temporales huérfanas.

Comprobación del consumo de inodos con df -i

Una vez completada la verificación técnica, procedemos a remover la carpeta de prueba y sus elementos auxiliares invocando rm -rf /tmp/df-test.

Limpieza del directorio temporal de laboratorio

4. Escenario Práctico en Producción: Ficheros Eliminados y la Brecha entre df y du

Con el fin de rastrear procesos que retienen descriptores abiertos en segundo plano, verificamos la disponibilidad de la herramienta lsof y efectuamos su aprovisionamiento en caso de requerirse.

Comprobación e instalación de lsof

Mediante lsof +L1, el sistema enumera todos aquellos ficheros que, a pesar de haber sido desvinculados de la estructura de directorios (enlace duro igual a cero), permanecen cargados activamente por algún demonio o servicio en ejecución.
Cuando un administrador purga un log voluminoso con rm, el espacio no es liberado de inmediato en df si el proceso originario mantiene su descriptor abierto. Mientras du recorre el árbol de directorios y deja de contabilizar el archivo borrado, df interroga al superblock del filesystem, que aún reserva los bloques bloqueados.
Para recuperar inmediatamente el almacenamiento reportado por df, basta con ubicar el identificador del proceso (PID) listado y proceder a reiniciar o detener dicho servicio, forzando la liberación definitiva del descriptor.

Rastreo de descriptores huérfanos con lsof +L1

Dominar estos cinco enfoques prácticos de df, junto con la correcta interpretación de descriptores bloqueados e inodos, garantiza una gestión de infraestructura ágil y previene caídas imprevistas por falta de almacenamiento en servidores Linux.