Skip to Content
DocumentaciónOperacionesAdministración del sistemaAnálisis de espacio en disco

¿Dónde se fue el espacio en disco? Análisis y limpieza

“El disco está casi lleno” le acaba pasando a todo usuario de Ubuntu. Lo molesto es que df le dice que está lleno, pero no qué lo llenó. Este es el orden reproducible: primero localizar, después limpiar.

Paso 1: qué tan lleno está realmente

df -h

Mire la columna Use%, sobre todo la de / (el sistema de archivos raíz) y la de /home si es una partición aparte.

El equivalente gráfico es la barra de uso de Discos tras seleccionar una partición, o la barra de capacidad al pie de la barra lateral del gestor de archivos.

Paso 2: encontrar los directorios grandes

du puede calcularlo, pero acaba adivinando nivel a nivel:

# Size of each subdirectory here, largest first du -h --max-depth=1 . | sort -hr | head

El Analizador de uso de discos (baobab) analiza todo el árbol de una vez y es mucho más fácil de leer:

sudo apt install baobab baobab /home/$USER

Empieza a analizar la ruta que le indique y, al terminar, muestra esto:

Disk Usage Analyzer showing a folder list where snap takes 87.29 percent and 113.9 MB and .cache 12.13 percent, next to a rings chart with 130.5 MB in the centre and Rings Chart / Treemap Chart tabs
Disk Usage Analyzer: a sorted list with percentages on the left, the ring chart on the right, and any ring can be clicked to drill down

Cómo leerlo:

  • La lista de la izquierda está ordenada por tamaño; expanda las filas una a una con su flecha y obtendrá las rutas exactas, lo que es mejor que ir haciendo clic en los anillos
  • Treemap Chart de la esquina inferior derecha convierte las proporciones en áreas, así el bloque más grande salta a la vista
  • Esta captura es de una VM recién instalada en la que solo snap ocupa el 87 %. No es un fallo: cada aplicación Snap guarda varias revisiones
Tip

Analizar ~ tarda segundos; analizar / tarda minutos porque recorre todo el sistema. Empiece por ~ y analice / solo cuando eso no explique el uso.

Paso 3: limpiar los sospechosos habituales

Revisiones antiguas de Snap

Snap conserva las últimas revisiones para que pueda revertir, y cada una es una copia completa del programa. Eso es el 87 % de la captura anterior.

# Keep 2 revisions instead of the default 3 sudo snap set system refresh.retain=2 # Remove every disabled revision sudo snap list --all | awk '/disabled/{print $1, $3}' | while read name rev; do sudo snap remove "$name" --revision="$rev" done

Paquetes descargados

# Empty /var/cache/apt/archives sudo apt clean # Drop dependencies nothing needs any more sudo apt autoremove --purge

Journal de systemd

Los registros de journalctl pueden llegar a ocupar varios GB:

# Keep at most 200 MB sudo journalctl --vacuum-size=200M # Or keep only 7 days sudo journalctl --vacuum-time=7d

Cachés de usuario

Los navegadores, las miniaturas y las cachés de las aplicaciones viven en ~/.cache:

du -h --max-depth=1 ~/.cache | sort -hr | head

Piénselo antes de borrar: las cachés del navegador se rellenan de nuevo bajo demanda y por lo general mantienen la sesión iniciada, mientras que ~/.cache/thumbnails siempre se puede eliminar sin riesgos.

Paso 4: cuando limpiar no es suficiente

Limpiar compra tiempo; el espacio real se consigue ampliando o moviendo:

  • Máquinas virtuales: amplíe el disco virtual en la configuración de la VM y luego aumente la partición (growpart más resize2fs)
  • Máquinas físicas: añada un disco y formatéelo/móntelo — consulte Discos, montaje y fstab
  • Mover datos: traslade directorios grandes como ~/Downloads o la raíz de datos de Docker al disco nuevo y móntelos mediante fstab

Preguntas frecuentes

df dice que está lleno, pero du suma mucho menos

El caso clásico: se eliminó un archivo pero un proceso aún lo mantiene abierto, así que el espacio solo se libera cuando ese proceso termina.

# Find deleted files that are still open sudo lsof +L1 2>/dev/null | head

El culpable habitual es un escritor de registros que sigue en marcha; reinicie el servicio que lo posee (sudo systemctl restart <service>).

“No space left on device” pero df muestra espacio libre

Probablemente sea un agotamiento de inodos, típico con cantidades enormes de archivos pequeños (spools de correo, capas de contenedores).

# Check inode usage df -i

Si IUse% está al 100 %, ese es su problema; la solución es el mismo tipo de limpieza, solo que lo que hay que borrar son muchos archivos pequeños, no grandes.

Automatizar la limpieza

systemd-tmpfiles ya vacía /tmp y algunas cachés. Para limpiar la caché de apt de forma programada, añada una entrada de cron:

# Clean the apt cache every Sunday at 03:00 0 3 * * 0 root /usr/bin/apt clean

Guárdela como /etc/cron.d/apt-clean.

Relacionado

Last updated on