Lee las instrucciones para un mantenimiento mensual seguro para tu VPS Debian, pensado para que lo ejecutes rápido y mantengas siempre el sistema ligero y bajo control:
Revisar espacio en disco
df -h
- Comprueba que la partición
/no supere el 80% de uso. - Si ves que se acerca al límite, pasa al siguiente paso de limpieza.
Analizar qué ocupa más espacio
sudo du -h --max-depth=1 /var | sort -h
- Localiza directorios pesados (
/var/log,/var/lib,/var/www). - Si
/var/log/journalvuelve a crecer, haz limpieza.
Limpiar logs del sistema
sudo journalctl --vacuum-size=500M
- Mantiene los logs binarios de systemd por debajo de 500 MB.
- Si ya configuraste el límite en
journald.conf, este comando asegura la limpieza manual.
Rotar y vaciar logs de Apache/Nginx
sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/apache2/error.log
- Vacía los logs sin borrar los archivos.
- Útil si tu web genera mucho tráfico.
Limpiar cachés de paquetes
sudo apt-get clean
sudo apt-get autoremove --purge
- Estob orra paquetes descargados y dependencias que ya no se usan.
- Recupera espacio en
/var/cache/apty/var/lib/apt.
Revisar bases de datos (si usas MariaDB/MySQL)
sudo du -h --max-depth=1 /var/lib/mysql | sort -h
- Identifica tablas grandes.
- Ejecuta
OPTIMIZE TABLEen las que más ocupen para liberar espacio.
Comprobar procesos y servicios activos
htop
- Revisa consumo de CPU y RAM.
- Asegúrate de que no haya procesos zombis o servicios innecesarios.
Backup rápido
- Haz copia de seguridad de
/var/wwwy de tus bases de datos:
tar -czf backup-www-$(date +%F).tar.gz /var/www
mysqldump -u root -p --all-databases > backup-db-$(date +%F).sql
- A continuación guarda los backups fuera del VPS si es posible.
✅ Resultado esperado
- VPS siempre con espacio libre > 50%.
- Logs controlados y nunca superiores a 500 MB.
- Cachés y paquetes limpios.
- Bases de datos optimizadas.
- Backups recientes y listos para restaurar.
SCRIPT DE MANTENIMIENTO MENSUAL
Aquí tienes tu script de mantenimiento mensual para el VPS. Lo puedes guardar como vps-maintenance.sh, darle permisos de ejecución y lanzarlo cada vez que quieras revisar y limpiar tu servidor:
#!/bin/bash
# VPS Maintenance Script - Edition
# Ejecutar con: sudo ./vps-maintenance.sh
echo "===== Estado del disco ====="
df -h
echo ""
echo "===== 📂 Uso en /var ====="
du -h --max-depth=1 /var | sort -h
echo ""
echo "===== Limpiando logs del sistema (máx 500MB) ====="
journalctl --vacuum-size=500M
echo ""
echo "===== Limpiando logs de Apache ====="
truncate -s 0 /var/log/apache2/access.log 2>/dev/null
truncate -s 0 /var/log/apache2/error.log 2>/dev/null
echo ""
echo "===== Limpiando cachés de paquetes ====="
apt-get clean
apt-get autoremove --purge -y
echo ""
echo "===== Espacio en bases de datos ====="
du -h --max-depth=1 /var/lib/mysql | sort -h
echo ""
echo "===== ✅ Mantenimiento completado ====="
echo "Revisa arriba el estado del disco y bases de datos."
Pasos en tu VPS
- Entrar al editor y crear el archivo:
sudo nano /root/vps-maintenance.sh
- Pega dentro el contenido del script avanzado de mantenimiento.
- Guardar y salir de nano:
- Pulsa
CTRL + O→ Enter para guardar. - Pulsa
CTRL + Xpara salir.
- Dar permisos de ejecución al script:
sudo chmod +x /root/vps-maintenance.sh
- Probarlo manualmente:
sudo /root/vps-maintenance.sh
Cómo usarlo
1. Copia el contenido en un archivo:
nano vps-maintenance.sh
2. Dale permisos de ejecución:
chmod +x vps-maintenance.sh
3. Ejecútalo con privilegios:
sudo ./vps-maintenance.sh
✅ Resultado esperado
- Verás un informe con el estado del disco y
/var. - Los logs del sistema y Apache quedarán reducidos.
- Cachés y paquetes sobrantes se eliminarán.
- Tendrás un vistazo rápido al tamaño de tus bases de datos.
VERSION AVANZADA DEL SCRIPT DE MANTENIMIENTO
Aquí tienes la versión avanzada del script de mantenimiento que además de ejecutar las limpiezas y comprobaciones, guarda un informe con fecha en un archivo dentro de tu VPS (por ejemplo report-2025-12-06.txt). Con esto tendrás un histórico de cada mantenimiento mensual.
Script vps-maintenance.sh
#!/bin/bash
# VPS Maintenance Script - Edition
# Ejecutar con: sudo ./vps-maintenance.sh
# Nombre del informe con fecha actual
REPORT="/root/vps-report-$(date +%F).txt"
echo "===== 📊 Estado del disco =====" | tee $REPORT
df -h | tee -a $REPORT
echo "" | tee -a $REPORT
echo "===== 📂 Uso en /var =====" | tee -a $REPORT
du -h --max-depth=1 /var | sort -h | tee -a $REPORT
echo "" | tee -a $REPORT
echo "===== Limpiando logs del sistema (máx 500MB) =====" | tee -a $REPORT
journalctl --vacuum-size=500M | tee -a $REPORT
echo "" | tee -a $REPORT
echo "===== Limpiando logs de Apache =====" | tee -a $REPORT
truncate -s 0 /var/log/apache2/access.log 2>/dev/null
truncate -s 0 /var/log/apache2/error.log 2>/dev/null
echo "Logs de Apache vaciados" | tee -a $REPORT
echo "" | tee -a $REPORT
echo "===== Limpiando cachés de paquetes =====" | tee -a $REPORT
apt-get clean
apt-get autoremove --purge -y | tee -a $REPORT
echo "" | tee -a $REPORT
echo "===== 📊 Espacio en bases de datos =====" | tee -a $REPORT
du -h --max-depth=1 /var/lib/mysql | sort -h | tee -a $REPORT
echo "" | tee -a $REPORT
echo "===== ✅ Mantenimiento completado =====" | tee -a $REPORT
echo "Informe guardado en $REPORT" | tee -a $REPORT
Cómo usarlo
COMANDOS EN NEGRITA
- Copia el contenido en un archivo
: nano vps-maintenance.sh - Dale permisos de ejecución:
chmod +x vps-maintenance.sh - Ejecútalo con privilegios:
sudo ./vps-maintenance.sh
✅ Resultado esperado
- Se ejecutan todas las limpiezas y comprobaciones.
- Se genera un archivo de informe en
/root/con nombre tipovps-report-2025-12-06.txt. - Cada mes tendrás un histórico con fecha, para comparar evolución del espacio y detectar crecimientos anómalos.
Configuración con cron
- Edita el cron del sistema:
sudo crontab -e
- Agrega esta línea al final:
0 3 1 * * /root/vps-maintenance.sh
Explicación:
0 3 1 * *→ se ejecuta a las 03:00 AM del día 1 de cada mes./root/vps-maintenance.sh→ ruta completa al script que creaste.- El script ya genera un informe con fecha (
/root/vps-report-YYYY-MM-DD.txt), así tendrás histórico mensual.
📂 Dónde ver los informes
Cada mes se guardará un archivo en /root/ con nombre tipo:
vps-report-2025-12-01.txt
vps-report-2026-01-01.txt
Puedes revisarlos con:
less /root/vps-report-2025-12-01.txt
✅ Resultado esperado
- El mantenimiento se ejecuta automáticamente cada mes.
- Los informes quedan archivados con fecha.
- Tu VPS se mantiene limpio y controlado sin intervención manual.
Instrucciones para habilitar el envío por email
1. Instalar un agente de correo ligero
En Debian lo más sencillo es mailutils (usa postfix o exim como backend):
sudo apt-get update
sudo apt-get install mailutils -y
Durante la instalación te pedirá configurar postfix. En el caso de que solo quieres enviar correos (no recibir), selecciona «Internet Site» y pon tu dominio o hostname del VPS.
2. Modificar el script vps-maintenance.sh
Agrega al final del script, las siguientes líneas de código:
# Dirección de destino
EMAIL="tu-correo@ejemplo.com"
# Enviar el informe por email
mail -s "Informe VPS $(date +%F)" $EMAIL < $REPORT
3. Configuración con cron (ya lo tienes)
Tu cron quedaría así, ejecutando el script el día 1 de cada mes a las 03:00:
0 3 1 * * /root/vps-maintenance.sh
✅ Resultado esperado
- Cada mes, el script se ejecuta automáticamente.
- Se genera el informe en
/root/vps-report-YYYY-MM-DD.txt. - Se envía un email con el informe adjunto al destinatario que configures.
Comandos para revisar espacio en el VPS
- Espacio general en todas las particiones:
df -h
Muestra tamaño total, usado, disponible y porcentaje de uso en cada sistema de archivos.
- Uso detallado en
/var(donde suelen crecer logs, bases de datos y webs):
sudo du -h --max-depth=1 /var | sort -h
Lista los subdirectorios de /var ordenados por tamaño.
- Uso detallado en
/var/www(tus sitios web):
sudo du -h --max-depth=1 /var/www | sort -h
Te dice cuánto ocupa cada proyecto web.
- Uso detallado en
/var/log(logs del sistema y Apache):
sudo du -h --max-depth=1 /var/log | sort -h
Localiza qué servicio genera más registros.
- Uso detallado en
/var/lib(bases de datos, librerías, contenedores):
sudo du -h --max-depth=1 /var/lib | sort -h
Analiza si MySQL, apt o Docker están ocupando demasiado espacio.
✅ Recomendación
Si lo vas a anotar en tu informe, puedes dejarlo como bloque final:
# Comandos de comprobación de espacio en el VPS
df -h
sudo du -h --max-depth=1 /var | sort -h
sudo du -h --max-depth=1 /var/www | sort -h
sudo du -h --max-depth=1 /var/log | sort -h
sudo du -h --max-depth=1 /var/lib | sort -h