Servidores y VPS

Disco lleno en tu VPS: cómo liberar espacio y evitarlo

Cuando el disco de tu VPS se llena, el servidor deja de funcionar; aprende a liberar espacio rápido y a evitar que vuelva a pasar.

Close-up image of ethernet cables plugged into a network switch, showcasing IT infrastructure.

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 -h y localiza el culpable con du -sh antes 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:

← Todos