¿Disco lleno en el servidor? Cómo rastrear archivos con du y df
Aprenda el procedimiento práctico paso a paso para identificar directorios hinchados y recuperar espacio en disco en Linux usando du y df.
Resumen
- El comando df muestra la ocupación general del almacenamiento en todas las particiones montadas.
- El comando du calcula el espacio físico exacto consumido por archivos y carpetas específicos.
- Identificar el punto de montaje problemático evita diagnósticos erróneos en servidores saturados.
- Los archivos eliminados que permanecen abiertos por procesos activos continúan reteniendo espacio.
- Establecer rutinas de limpieza preventiva garantiza la estabilidad a largo plazo en producción.
La alerta de agotamiento de almacenamiento y el pánico en el servidor
Trabajar con administración de sistemas en servidores Linux inevitablemente nos pone frente a un mensaje aterrador: el disco se ha llenado por completo. Las aplicaciones fallan abruptamente, las bases de dados interrumpen transacciones por falta de espacio de escritura y el acceso remoto por SSH puede incluso rechazar nuevas conexiones. En la práctica, esto significa que la máquina perdió la capacidad de escribir nuevos datos en el almacenamiento físico, paralizando los servicios esenciales que corren sobre ella. Cuando el sistema alcanza este umbral crítico, la primera reacción común es el pánico seguido de eliminaciones aleatorias de archivos, lo que rara vez resuelve el problema y puede generar fallas aún mayores. Para evitar este tipo de escenario drástico, necesitamos herramientas nativas capaces de mapear exactamente dónde se consumió el espacio, descubriendo a los villanos ocultos que inflaron nuestra infraestructura. Al igual que un diagnóstico médico necesita precisión antes de cualquier intervención quirúrgica, debemos examinar el sistema de archivos de forma metódica antes de borrar datos importantes a la carrera, un flujo que se relaciona directamente con precauciones que tomamos al Cómo recuperar archivos borrados en Linux con TestDisk ante borrados accidentales.
Entendiendo la vista macro con el comando df
El primer paso para investigar un problema de almacenamiento es observar el panorama general de la máquina mediante el comando df, que significa disk free o espacio libre en disco. En la práctica, esta utilidad escanea todas las particiones y puntos de montaje activos en el sistema operativo, mostrando capacidad total, espacio utilizado, porcentaje de ocupación y dónde se conecta cada partición en el árbol de directorios. Para que la lectura sea amigable para los humanos, solemos ejecutar el comando acompañado de la bandera -h, que convierte los números brutos de bloques en unidades comprensibles como gigabytes y megabytes. Si nota cuellos de botella severos de lectura y escritura asociados con lentitud general del sistema, es prudente contrastar este análisis con directrices sobre ¿Disco lento? Cómo identificar cuellos de botella I/O en NVMe en Linux. El uso básico del comando en su terminal se puede ejecutar de la siguiente manera:
df -hAl ejecutar esta instrucción, la pantalla mostrará una tabla dividida en columnas informativas. La columna llamada Filesystem apunta al dispositivo físico o partición, Size muestra la capacidad total, Used revela el espacio ocupado, Avail indica el espacio aún disponible, Use% muestra el porcentaje exacto de uso y Mounted on revela el directorio raíz o punto de montaje donde opera esa partición. Si la fila correspondiente a la barra (el directorio raíz /) marca el cien por ciento de uso, sabemos con precisión dónde radica la emergencia operacional.
Rastreando los mayores consumidores de espacio con du
Una vez descubierto qué sistema de archivos está sepultado bajo datos, el siguiente paso lógico es averiguar qué carpetas específicas están causando la hinchazón. Para esta misión quirúrgica, utilizamos el comando du, abreviatura de disk usage o uso de disco, que recorre recursivamente las carpetas del sistema calculando el peso de cada estructura. Como las carpetas grandes contienen miles de subdirectorios, ejecutar el comando sin filtros genera una avalancha interminable de líneas en la pantalla que no ayuda en absoluto para un diagnóstico rápido. Para evitar este comportamiento y obtener un resumen limpio, combinamos el comando con parámetros inteligentes que limitan la profundidad de búsqueda y ordenan los resultados por tamaño en orden descendente, técnica muy útil también al limpiar acumulaciones explicadas en Cómo Limpiar el Caché de Docker en Linux y Liberar Espacio. Así es como se inspecciona el directorio actual listando las carpetas más grandes:
du -h --max-depth=1 | sort -hrEn esta línea de comando, la bandera -h mantiene la legibilidad humana de los tamaños, el argumento --max-depth=1 restringe el escaneo estrictamente al primer nivel de subdirectorios debajo de la carpeta actual, evitando que la terminal se pierda en subniveles profundos, y el comando sort -hr organiza todo poniendo a los mayores consumidores en la parte superior de la lista. Al ejecutar esta secuencia dentro de la carpeta raíz, aislará rápidamente si el problema se esconde dentro de directorios como var, usr o home, dirigiendo su investigación al punto exacto del problema.
Investigando archivos gigantes y limpiando basura acumulada
Con el perímetro cerrado alrededor del directorio problemático, podemos navegar hacia él y repetir la búsqueda para aislar el archivo o subcarpeta exacta que consume valiosos gigabytes. A menudo nos encontramos con archivos de registro gigantescos generados por aplicaciones que no lograron rotar sus registros de actividad, o archivos temporales dejados por instaladores y procesos en segundo plano. Si su máquina utiliza gestores de paquetes tradicionales, una excelente práctica preventiva y complementaria es Cómo limpiar el caché de APT y liberar espacio en Linux para recuperar megabytes valiosos sin riesgo. Para listar archivos y carpetas ordenados por tamaño dentro de un directorio específico, podemos usar una combinación robusta de du con herramientas de ordenamiento:
du -ah --max-depth=1 /var/log/ | sort -hr | head -n 20En este comando más avanzado, la bandera -a indica a la utilidad que incluya archivos individuales además de los directorios, y la herramienta head -n 20 limita estrictamente la salida a los veinte elementos principales encontrados, ahorrando un tiempo precioso al operador. Al identificar un archivo muerto o un registro obsoleto que ya no posee utilidad operacional, puede eliminarlo de manera segura mediante el comando rm, aliviando inmediatamente la presión sobre el sistema operativo y restableciendo el margen de seguridad del servidor.
Un error clásico y muy común cometido por administradores novatos ocurre cuando eliminan archivos de registro grandes mientras las aplicaciones siguen escribiendo en ellos, un escenario donde el espacio en disco misteriosamente no se libera tras la eliminación. En la práctica, esto sucede porque el proceso en ejecución mantiene un descriptor de archivo abierto en memoria, obligando al sistema operativo a mantener los bloques físicos asignados hasta que el proceso se reinicie por completo o se cierre la conexión. Para rastrear estos fantasmas silenciosos que siguen ocupando espacio incluso después de comandos de eliminación, podemos recurrir a utilidades de auditoría del núcleo del sistema, técnica similar a la que usamos al analizar fallas de memoria en ¿Contenedor bloqueado? Cómo auditar el OOM Killer con dmesg. En estos casos extremos, reiniciar el servicio asociado o terminar el proceso problemático fuerza al sistema a liberar definitivamente los bloques de almacenamiento ociosos.
Consideraciones finales sobre el monitoreo de almacenamiento
Gestionar el espacio en disco en servidores Linux va mucho más allá de borrar archivos manualmente cuando suena la alarma de disco lleno en plena madrugada. Al dominar el uso combinado de los comandos df para la visión general y du para el detalle quirúrgico, el profesional gana autonomía y velocidad para diagnosticar cualquier cuello de botella de almacenamiento antes de que se convierta en una interrupción del servicio. Adoptar rutinas periódicas de inspección, configurar alertas automáticas de límite de capacidad y comprender el comportamiento de los procesos en relación con los archivos abiertos son pilares fundamentales para mantener una infraestructura robusta, estable y preparada para el crecimiento continuo del negocio.