Start typing to search across invoices, services, domains, tickets, and more...
Sitios web que no cargan, bases de datos que no pueden escribir y el mensaje "No space left on device" suelen indicar que el disco está lleno. Esta guía muestra formas prácticas de comprobar y liberar espacio en disco en Linux: localizar el uso con df -h y du, analizarlo de forma interactiva con ncdu, encontrar archivos grandes con find y limpiar de forma segura los registros del sistema, las cachés de paquetes y los datos de Docker. Los comandos sirven para Debian/Ubuntu y CentOS/Rocky/AlmaLinux; ejecútelos como root.
df -hT muestra el tamaño, el espacio usado y el porcentaje de uso de cada sistema de archivos, de modo que puede ver qué punto de montaje está cerca del 100 %. Ejecute también df -i para comprobar los inodos: si millones de archivos pequeños (cachés, sesiones) agotan los inodos, obtendrá errores de "disco lleno" aunque quede espacio libre.
df -hT # space usage per filesystem
df -i # inode usage (100% also means "No space left on device")
Mida cada directorio de primer nivel, ordénelos por tamaño y profundice en el más grande. La opción -x mantiene du en el sistema de archivos actual para no contar los discos de datos montados. Los directorios que más espacio suelen ocupar son /var/log, /var/lib/docker, /var/lib/mysql, las carpetas de sitios web y los directorios de copias de seguridad.
# Tamaño de cada directorio de primer nivel en el sistema de archivos raíz, el más grande al final
du -xh --max-depth=1 / 2>/dev/null | sort -h
# Profundice, p. ej. en /var
du -xh --max-depth=1 /var 2>/dev/null | sort -h
ncdu es un analizador de disco para terminal. Tras el escaneo, puede recorrer los directorios con las flechas del teclado y pulsar d para eliminar, lo que resulta mucho más rápido que ejecutar du repetidamente.
# Debian / Ubuntu
apt install -y ncdu
# CentOS / Rocky / AlmaLinux (ncdu está en EPEL)
dnf install -y epel-release && dnf install -y ncdu
ncdu -x /
Liste todos los archivos de más de 500 MB. Así descubrirá rápidamente archivos de copia de seguridad olvidados, volcados de bases de datos o registros descontrolados. Confirme qué es cada archivo antes de eliminarlo; si no está seguro, muévalo primero a otro disco.
# Archivos de más de 500 MB en el sistema de archivos raíz
find / -xdev -type f -size +500M -exec ls -lh {} \; 2>/dev/null | sort -k5 -h
El journal de systemd puede crecer hasta varios gigabytes con el tiempo; recórtelo por tamaño o antigüedad con journalctl. No borre con rm un registro grande en el que un programa sigue escribiendo; vacíelo con truncate, ya que de lo contrario el espacio no se libera. Las cachés de paquetes se pueden borrar sin riesgo.
journalctl --disk-usage
journalctl --vacuum-size=200M
journalctl --vacuum-time=7d
# Vaciar un archivo de registro grande en el que un programa en ejecución sigue escribiendo (no use rm)
truncate -s 0 /var/log/nginx/access.log
# Cachés del gestor de paquetes
apt clean # Debian / Ubuntu
dnf clean all # CentOS / Rocky / AlmaLinux
Para evitar que el journal vuelva a crecer, establezca un límite de tamaño:
# Limitar de forma permanente el tamaño del journal
mkdir -p /etc/systemd/journald.conf.d
printf '[Journal]\nSystemMaxUse=500M\n' > /etc/systemd/journald.conf.d/size.conf
systemctl restart systemd-journald
En los hosts con Docker, los contenedores detenidos, las imágenes sin usar y la caché de compilación se acumulan en /var/lib/docker. Compruebe el uso con docker system df y elimine lo que ya no necesite.
docker system df
docker container prune -f
docker image prune -a -f
docker builder prune -f
# Elimina todo lo que no se usa, incluidos los volúmenes: ¡compruébelo antes!
docker system prune -a --volumes
--volumes elimina todos los volúmenes que no use ningún contenedor, lo que puede incluir datos de bases de datos. Asegúrese de que no los necesita antes de ejecutarla.Si eliminó un archivo grande pero df no muestra cambios, algún proceso todavía lo tiene abierto. Encuéntrelo con lsof y reinicie ese servicio para liberar el espacio.
# Archivos eliminados que un proceso todavía mantiene abiertos
lsof +L1 2>/dev/null | head -n 20
# Reinicie el proceso que los mantiene, p. ej.
systemctl restart nginx
Normalmente por uno de dos motivos: archivos eliminados que un proceso todavía mantiene abiertos (consulte el paso 7), o archivos ocultos bajo un punto de montaje porque se montó un disco encima. En el primer caso, reinicie el proceso; en el segundo, desmonte el disco e inspeccione el directorio.
Por lo general, se pueden eliminar los registros rotados con fecha o con la extensión .gz. Vacíe los registros activos con truncate. La solución a largo plazo es configurar logrotate para rotar y comprimir los registros periódicamente.
Traslade los sitios web, las bases de datos o las copias de seguridad a un disco de datos, o amplíe el disco y extienda la partición siguiendo nuestra guía de LVM/growpart.
¿Sigue con problemas después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico 24/7 de IMIDC le ayudará. Incluya la IP del servidor, el sistema operativo, los comandos que ejecutó y una captura de pantalla del error para que podamos localizar el problema más rápido.