Cuando el disco de tu VPS llega al 100 %, las aplicaciones dejan de escribir datos, las bases de datos se corrompen y el servidor puede volverse completamente inutilizable. La solución inmediata es identificar qué ocupa el espacio y eliminarlo; la solución definitiva es configurar alertas y rutinas de limpieza para que no vuelva a pasar.
Esta guía te lleva paso a paso: diagnóstico rápido, limpieza segura y prevención automatizada.
Paso 1 — Confirmar que el disco está lleno y localizar el problema
Antes de borrar nada, entiende exactamente dónde se fue el espacio.
Comandos de diagnóstico esenciales
# Ver uso de disco por partición
df -h
# Ver cuánto ocupa cada directorio en /
du -sh /* 2>/dev/null | sort -rh | head -15
# Ver los 20 archivos más grandes en todo el sistema
find / -xdev -type f -size +100M 2>/dev/null | xargs du -sh | sort -rh | head -20
El comando df -h te dirá al instante si / está al 100 %. Después usa du para bajar al directorio culpable: normalmente es /var/log, /var/www, /home o /tmp.
Paso 2 — Las fuentes más comunes de disco lleno en un VPS
El 90 % de los casos caen en una de estas categorías:
Logs sin rotar ni limpiar
Los logs de Apache, Nginx, MySQL y aplicaciones propias crecen indefinidamente si no se configuró logrotate. Un log de acceso de Nginx puede llegar a varios GB en sitios con tráfico moderado.
# Ver el tamaño total de /var/log
du -sh /var/log/* | sort -rh | head -10
# Ver si logrotate está activo
logrotate --debug /etc/logrotate.conf 2>&1 | head -30
Backups locales acumulados
Si tus scripts de backup guardan copias en el mismo VPS sin eliminar las antiguas, el almacenamiento se agota en días. Busca archivos .tar.gz o .sql.gz grandes:
find /home /var/backups -name "*.tar.gz" -o -name "*.sql.gz" | xargs du -sh 2>/dev/null | sort -rh
Caché de paquetes y kernels antiguos
# Ubuntu/Debian: limpiar caché de apt y paquetes huérfanos
apt clean && apt autoremove -y
# CentOS/RHEL: limpiar caché de dnf/yum
dnf clean all
# Ver kernels instalados (generalmente puedes eliminar los antiguos)
rpm -q kernel # CentOS
dpkg -l 'linux-image*' | grep ^ii # Ubuntu
Archivos temporales y volcados de memoria
# Limpiar /tmp (seguro en la mayoría de los casos)
rm -rf /tmp/*
# Buscar core dumps (volcados de procesos)
find / -xdev -name "core" -o -name "core.*" 2>/dev/null
Base de datos MySQL/MariaDB con binlogs sin limpiar
Los binary logs de MySQL pueden ocupar decenas de GB. Si no usas replicación, puedes purgarlos de forma segura:
-- En MySQL/MariaDB:
SHOW BINARY LOGS;
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);
Después de purgar, ajusta en /etc/mysql/mariadb.conf.d/50-server.cnf:
expire_logs_days = 7
Paso 3 — Limpieza segura: qué borrar y qué no tocar
| Archivo / directorio | ¿Seguro de borrar? | Nota |
|---|---|---|
/tmp/* |
Sí | Se regenera solo; vacía con el servidor en marcha |
Logs en /var/log ya rotados (*.gz) |
Sí | Los archivos .gz son copias archivadas |
Log activo (nginx/access.log, etc.) |
Truncar, no borrar | Usa truncate -s 0 archivo.log para no romper el file handle |
| Backups propios antiguos | Sí, si ya están en destino remoto | Verifica antes que estén en S3/FTP/otro servidor |
| Binlogs de MySQL | Sí, con PURGE |
Solo si no usas replicación |
/var/www (archivos de sitios) |
Con cuidado | Solo borra lo que identifiques como obsoleto |
Para limpiar un log activo sin romper el proceso que lo escribe:
truncate -s 0 /var/log/nginx/access.log
Puedes ver más herramientas de mantenimiento en nuestra guía de administración de servidores VPS.
Paso 4 — Prevención: cómo evitar que el disco vuelva a llenarse
Configurar logrotate correctamente
Asegúrate de que logrotate esté activo y con una política agresiva para logs de alto volumen. Ejemplo para Nginx:
# /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
sharedscripts
postrotate
nginx -s reopen
endscript
}
Enviar backups fuera del VPS
Los backups deben salir del servidor. Usa un bucket de objeto (Backblaze B2, Wasabi, AWS S3) o un segundo servidor. Borra las copias locales tras confirmar la transferencia.
Alertas de disco: recibe aviso antes del problema
Un script simple en cron que envía un aviso cuando el disco supera el 80 %:
#!/bin/bash
USO=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USO" -gt 80 ]; then
echo "ALERTA: disco al ${USO}% en $(hostname)" | mail -s "Disco VPS lleno" [email protected]
fi
Añade en cron (crontab -e): 0 * * * * /usr/local/bin/check_disk.sh
Ampliar el disco del VPS
Si después de limpiar todo el espacio sigue siendo insuficiente, es momento de ampliar el volumen. La mayoría de proveedores VPS permiten escalar el almacenamiento desde el panel de control sin reinstalar. Si necesitas orientación para elegir el plan correcto, el equipo de elenlace.com puede ayudarte a dimensionar tu VPS según el crecimiento real de tu proyecto.
Conclusiones clave
- Confirma el problema con
df -hy localiza el culpable condu -shantes de borrar nada. - Los logs sin rotar, backups locales acumulados y binlogs de MySQL son las causas más frecuentes.
- Trunca los logs activos con
truncate -s 0; nunca borres el archivo si el proceso que lo escribe sigue abierto. - Configura logrotate, envía backups fuera del VPS y activa alertas al 80 % de uso.
- Si el espacio sigue siendo insuficiente tras limpiar, amplía el volumen desde el panel de tu proveedor.
¿Necesitas que alguien se encargue del mantenimiento recurrente de tu servidor? Contáctanos en elenlace.com — gestionamos tu VPS para que tú solo tengas que enfocarte en tu negocio.
Preguntas frecuentes
¿Por qué el disco se llena tan rápido en mi VPS?
Las causas más habituales son logs que crecen sin control, backups que se guardan localmente sin eliminarse y binary logs de MySQL acumulados. Un VPS con tráfico moderado puede llenar 20 GB en pocas semanas si no hay políticas de rotación y limpieza activas.
¿Es seguro borrar los archivos de /tmp en un VPS en producción?
En general sí. /tmp contiene archivos temporales que los procesos crean y eliminan solos. Puedes vaciarlo con el servidor en marcha. La única precaución es no borrar sockets activos (archivos sin extensión que comienzan con un número de PID) que algunos daemons usan.
¿Puedo ampliar el disco de mi VPS sin reinstalar el sistema operativo?
Sí, la mayoría de proveedores permiten escalar el volumen en caliente desde su panel. Tras la ampliación, necesitarás extender la partición con growpart y el sistema de archivos con resize2fs (ext4) o xfs_growfs (XFS). Algunos proveedores automatizan este paso.
¿Cuándo debo empezar a preocuparme por el uso de disco?
Configura una alerta al 75–80 % de uso. Así tienes margen para actuar con calma. Al 90 % el riesgo de errores de escritura es alto; al 100 % muchos servicios dejan de funcionar de inmediato.
Recursos útiles
Otros proveedores y guías que vale la pena comparar: