Trabajas con varios clientes, cada uno con su sitio en un .com, .net u .org, y todos viven en el mismo VPS. Un martes cualquiera empiezan a llegarte mensajes: “no puedo guardar cambios”, “mi correo no funciona”, “la tienda dio un error”. Revisas el servidor y ahí está el origen de todo: el disco está al 100%. Cuando pasa esto, la presión sube, pero la solución es más sencilla de lo que parece si sigues un orden.
Esta guía de nivel intermedio te lleva de la mano por el diagnóstico, la limpieza y la prevención, con comandos explicados uno por uno.
Cómo reconocer un disco lleno
El principal problema de un servidor sin espacio es que los síntomas engañan. Lo que ves no es “falta de espacio”, sino errores 500, páginas que no cargan, formularios sin respuesta, correos que rebotan o una base de datos que se apaga sola. Muchas personas pierden horas buscando fallas en el código cuando la causa está en el almacenamiento.
Por eso, ante cualquier falla extraña en un VPS, la primera revisión debe ser siempre el espacio disponible. Toma un minuto y puede ahorrarte una tarde entera.
Paso 1: entra por SSH y consulta el espacio
Abre una terminal y conéctate:
ssh usuario@IP-de-tu-servidor
Ahora ejecuta:
df -h
Mira la fila que corresponde a / y su porcentaje en Use%. Por encima del 90% conviene actuar sin demora, y en 100% es una emergencia. Anota la cifra: al terminar la compararás para comprobar cuánto recuperaste.
Paso 2: localiza las carpetas que más pesan
Utiliza este comando para obtener un ranking de las carpetas principales:
sudo du -h –max-depth=1 / 2>/dev/null | sort -hr | head -15
Habrá que esperar unos instantes. Casi siempre destacan /var (registros, cachés y bases de datos) o /home (sitios, respaldos y archivos de usuarios). Profundiza en la primera de la lista:
sudo du -h –max-depth=1 /home | sort -hr | head -10
Si administras varios clientes, aquí verás rápido cuál de ellos ocupa más espacio. Puede ser una cuenta con miles de fotos sin optimizar o con respaldos acumulados durante meses.
Paso 3: detecta archivos gigantes
Este comando muestra todos los archivos de más de 500 MB:
sudo find / -type f -size +500M 2>/dev/null
Presta atención a las extensiones .zip, .tar.gz, .sql y .bak. Son los respaldos antiguos que suelen quedar olvidados. Antes de eliminarlos verifica tres cosas:
- Que sabes quién los generó y para qué.
- Que existe una copia más reciente y confiable en otro sitio.
- Que, si hay dudas, los descargaste primero a tu equipo.
Con clientes de por medio, esta prudencia es fundamental: nunca borres algo que pertenezca a una cuenta sin confirmar que no lo necesitan.
Paso 4: pon a raya los logs
Los registros se acumulan todos los días. Revisa los más pesados:
sudo ls -lhS /var/log | head -10
Para el registro del sistema, limita su tamaño con:
sudo journalctl –vacuum-size=200M
Para un log de aplicación que ya no necesitas, vacíalo sin eliminar el archivo:
sudo truncate -s 0 /var/log/nombre-del-archivo.log
El servicio que escribe en él continúa sin problema. Si deseas conservar los datos, comprímelos primero con gzip y guárdalos fuera del servidor.
Paso 5: elimina paquetes y descargas viejas
En sistemas Debian o Ubuntu, ejecuta en este orden:
- sudo apt clean para borrar los instaladores descargados.
- sudo apt autoremove para quitar lo que quedó sin usar.
En AlmaLinux, Rocky o CentOS el comando equivalente es sudo dnf clean all. Es una tarea inocua que libera espacio con muy poco esfuerzo.
Paso 6: comprueba los inodos
Si df -h indica que hay lugar pero el sistema insiste en “no space left on device”, revisa los inodos: el número máximo de archivos que el disco admite. Se agotan cuando hay cientos de miles de archivos diminutos, como sesiones o cachés de aplicaciones. Compruébalo así:
df -i
Si el porcentaje de IUse% está cerca de 100%, localiza la carpeta con la mayor cantidad de archivos y elimina los temporales viejos. Es la solución al misterio de los servidores con espacio libre que igual fallan.
Paso 7: verifica que todo funcione otra vez
Ejecuta de nuevo df -h y compara con la cifra inicial. Mantén el uso por debajo del 80% para tener margen. Reinicia los servicios afectados:
sudo systemctl restart apache2 (o nginx) y sudo systemctl restart mysql.
Entra a los sitios de tus clientes, envía un correo de prueba y sube un archivo. Si algo continúa fallando, revisa el log de errores del servicio; con espacio libre ya podrá mostrarte el motivo real.
Prevención: una rutina que vale oro
Para no volver a pasar por esto, incorpora estas prácticas:
- logrotate: define en /etc/logrotate.d/ cuántas semanas de registros guardar.
- Respaldos afuera: envía las copias a otro almacenamiento y conserva en el servidor solo las últimas.
- Revisión mensual: ejecuta df -h y du una vez al mes, con recordatorio en tu calendario.
- Alerta automática: un script con cron que te envíe un correo al pasar el 85% de uso.
- Aviso a tus clientes: pídeles que optimicen las imágenes antes de subirlas; ahorra mucho espacio.
Además, ofrecer un mantenimiento preventivo como servicio mensual puede convertirse en un ingreso extra y en una razón más para que tus clientes confíen en ti.
Errores que hay que evitar
- Usar rm -rf con prisa: revisa cada ruta dos veces.
- Borrar archivos de bases de datos directamente; usa siempre el gestor de MySQL o MariaDB.
- Eliminar carpetas del sistema que no reconoces.
- Hacer limpiezas grandes sin un respaldo reciente y verificado.
Cuando toca crecer
Si después de limpiar sigues casi sin espacio, no es un error tuyo: tu cartera de clientes o tus proyectos crecieron. Es el momento de ampliar el almacenamiento del VPS y trabajar con holgura, evitando las urgencias de fin de mes.
Un ejemplo con varios clientes en el mismo servidor
Imagina un VPS con doce sitios de clientes. df -h marca 95% y, con du sobre /home, descubres que una sola cuenta pesa 40 GB, más que las otras once juntas. Al mirar adentro, encuentras que el cliente instaló un plugin de copias que guarda un respaldo diario completo dentro de su propia carpeta, sin límite de cantidad. Desactivas esa opción, dejas solo las últimas tres copias, y recuperas 35 GB. Sin el rastreo por carpetas, habrías culpado a los logs o a la última actualización.
Cómo organizarte cuando administras muchas cuentas
Con varios clientes, conviene sumar algunas costumbres al mantenimiento general:
- Un reporte mensual por cuenta: con du por carpeta de usuario sabes quién crece más rápido y puedes avisarle a tiempo.
- Cuotas de espacio: define un límite razonable por cliente para que ninguno consuma todo el disco del servidor.
- Reglas claras sobre respaldos: acuerda cuántas copias se guardan en el servidor y dónde va el resto.
- Guía de imágenes para clientes: un documento breve que explique cómo comprimir fotos antes de subirlas ahorra espacio y mensajes.
Estas reglas, además de cuidar el disco, ordenan la relación comercial: cada cliente sabe qué incluye su plan y cuándo corresponde ampliarlo.
Lista de verificación final
- Espacio medido con df -h y anotado.
- Carpetas pesadas identificadas con du.
- Respaldos antiguos descargados o eliminados con permiso.
- Logs limitados con journalctl y truncate.
- Paquetes limpiados con apt clean y autoremove.
- Inodos revisados con df -i.
- Servicios reiniciados y sitios comprobados.
Cuando cada punto esté marcado, tu servidor queda listo para seguir creciendo con tranquilidad.
Una herramienta que te ahorra tiempo: ncdu
Si repetir el comando du te resulta pesado, existe un programa llamado ncdu que hace lo mismo de forma interactiva. Se instala con sudo apt install ncdu en Ubuntu o Debian. Luego lo ejecutas con sudo ncdu / y te muestra las carpetas ordenadas por tamaño. Con las flechas del teclado entras en una carpeta, y con Enter bajas al siguiente nivel. Para volver, presionas la flecha izquierda. Es como recorrer el explorador de archivos de tu computadora, pero dentro de la terminal.
La herramienta tarda un poco en escanear en la primera pasada, pero después navegar es instantáneo. Además, incluye una opción para borrar directamente desde ahí con la tecla d; úsala con mucho cuidado y solo sobre archivos que tengas identificados. Para principiantes en la terminal, ncdu es una manera amigable de encontrar al culpable sin memorizar comandos largos.
Un pequeño script que te avisa antes de que sea tarde
Para no depender de tu memoria, puedes automatizar un aviso. Crea un archivo llamado alerta-disco.sh con este contenido:
#!/bin/bash
USO=$(df / –output=pcent | tail -1 | tr -dc ‘0-9’)
if [ “$USO” -gt 85 ]; then echo “Disco al ${USO}%” | mail -s “Alerta de disco” tucorreo@ejemplo.com; fi
Dale permisos de ejecución con chmod +x alerta-disco.sh y prográmalo con cron para que corra una vez al día. Cada mañana el sistema revisa el porcentaje de uso y, si supera el 85%, te envía un mensaje. Necesitas tener configurado el envío de correo en el servidor para que funcione. Si no lo tienes, puedes hacer que el script escriba en un archivo o que llame a un servicio de notificaciones de tu preferencia.
Este sencillo control cambia por completo tu forma de trabajar: en lugar de descubrir el problema cuando la web ya falló, lo ves venir con días de anticipación.
Conclusión
Ya cuentas con un método completo: df para medir, du para rastrear, control de logs, limpieza de paquetes, revisión de inodos y prevención automática. Aplícalo hoy mismo y guarda estos comandos como tu pequeña lista de mantenimiento. Con un servidor ordenado, tus clientes duermen tranquilos y tú también.