Servidores y VPS

Backups en tu VPS: cómo Hacerlos y Automatizarlos

Aprende a crear copias de seguridad en tu servidor VPS usando rsync, tar y cron, y automatiza el proceso para proteger tus datos sin esfuerzo manual.

Detailed view of Ethernet and VGA ports on a server highlighting connectivity features.

Para hacer backups en un servidor VPS debes combinar tres herramientas: tar para empaquetar archivos, rsync para sincronizar con destino remoto y cron para ejecutarlo todo de forma automática. Con esas tres piezas tu VPS queda protegido sin intervención manual.

Por qué los backups en un VPS son tu responsabilidad

A diferencia del hosting compartido, en un VPS el proveedor generalmente respalda la infraestructura, no tus datos. Si borras una base de datos o un script elimina archivos por error, el proveedor puede no tener esa copia.

Los escenarios que destruyen datos sin aviso son más comunes de lo que parece:

  • Error humano al ejecutar rm -rf en el directorio equivocado.
  • Ransomware o intrusión que cifra o borra archivos.
  • Fallo de disco aunque el hardware sea confiable.
  • Actualización de software que corrompe la base de datos.

La regla 3-2-1 es el estándar mínimo: 3 copias de tus datos, en 2 soportes distintos, con al menos 1 copia fuera del servidor principal.

Herramientas esenciales para hacer backups en Linux

tar — empaquetar y comprimir

tar agrupa directorios completos en un único archivo .tar.gz. Es la forma más sencilla de crear un snapshot de un directorio.

tar -czf /backup/sitio_$(date +%F).tar.gz /var/www/misitio

El flag -c crea el archivo, -z lo comprime con gzip y -f define el nombre de destino. La variable $(date +%F) añade la fecha al nombre para no sobreescribir backups anteriores.

mysqldump — exportar bases de datos

Para MariaDB o MySQL el proceso es independiente del sistema de archivos. El comando básico:

mysqldump -u usuario -p'contraseña' nombre_bd | gzip > /backup/bd_$(date +%F).sql.gz

Usa siempre comillas simples alrededor de la contraseña para evitar que la shell interprete caracteres especiales.

rsync — sincronizar con destino remoto

rsync copia únicamente los cambios desde la última ejecución, lo que lo hace muy eficiente en ancho de banda y tiempo. Para enviar backups a un servidor remoto:

rsync -az --delete /backup/ usuario@servidor-remoto:/backups/mi-vps/

El flag --delete elimina del destino los archivos que ya no existen en origen, manteniendo la carpeta remota limpia y sincronizada.

Cómo automatizar backups con cron

El demonio cron ejecuta comandos según una agenda definida. Para editar el crontab del usuario actual:

crontab -e

Ejemplo de política de backups diarios a las 2:00 AM:

# Backup archivos del sitio
0 2 * * * tar -czf /backup/sitio_$(date +\%F).tar.gz /var/www/misitio

# Backup base de datos
5 2 * * * mysqldump -u usuario -p'contraseña' nombre_bd | gzip > /backup/bd_$(date +\%F).sql.gz

# Sincronizar con servidor remoto
30 2 * * * rsync -az /backup/ usuario@remoto:/backups/mi-vps/

Nota importante: dentro del crontab el símbolo % debe escaparse como \%.

Script de backup todo-en-uno

Es mejor centralizar la lógica en un script .sh y llamar ese script desde cron. Así puedes añadir logs, notificaciones y rotación de backups sin reescribir el crontab.

#!/bin/bash
FECHA=$(date +%F)
DIR_BACKUP=/backup/$FECHA
mkdir -p $DIR_BACKUP

# Archivos
tar -czf $DIR_BACKUP/sitio.tar.gz /var/www/misitio

# Base de datos
mysqldump -u usuario -p'contraseña' nombre_bd | gzip > $DIR_BACKUP/bd.sql.gz

# Copiar a remoto
rsync -az /backup/ usuario@remoto:/backups/mi-vps/

# Borrar backups locales de más de 7 días
find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;

echo "Backup $FECHA completado" >> /var/log/backups.log

Guarda este archivo como /usr/local/bin/backup_vps.sh, dale permisos de ejecución con chmod +x y añade en cron: 0 2 * * * /usr/local/bin/backup_vps.sh.

Verificación y restauración

Un backup que nunca se ha probado no es un backup, es una esperanza. Programa una restauración de prueba al menos una vez al mes:

  • Extrae el .tar.gz en un directorio temporal y verifica que los archivos sean legibles.
  • Importa el .sql.gz en una base de datos de prueba y comprueba que las tablas existen.
  • Anota el tiempo que tardó la restauración: eso es tu RTO real.

Para restaurar un backup de archivos:

tar -xzf /backup/2026-06-20/sitio.tar.gz -C /var/www/restauracion/

Para restaurar la base de datos:

gunzip -c /backup/2026-06-20/bd.sql.gz | mysql -u usuario -p nombre_bd

Si administras varios proyectos en tu VPS, te recomendamos explorar las opciones de servidores VPS disponibles en México para evaluar si un plan con más almacenamiento o snapshots incluidos se adapta mejor a tu crecimiento.

Conclusiones clave

  • La responsabilidad de los backups en un VPS es tuya, no del proveedor.
  • Usa tar para archivos, mysqldump para bases de datos y rsync para copias remotas.
  • Automatiza con cron o un script .sh centralizado para mayor control.
  • Aplica la regla 3-2-1: 3 copias, 2 soportes, 1 remota.
  • Prueba la restauración periódicamente: si no funciona la recuperación, el backup no sirve.
  • Rota backups locales (7 días) para no agotar el disco del VPS.

¿Necesitas un VPS con espacio suficiente para alojar backups y escalar cuando tu proyecto crezca? En elenlace.com encontrarás planes administrados con soporte para configurar tu política de respaldos desde el primer día.

Preguntas frecuentes

¿Con qué frecuencia debo hacer backups en mi VPS?

Depende de cuánto cambian tus datos. Para sitios con actualizaciones diarias (tiendas, blogs activos) un backup diario es el mínimo. Para aplicaciones con transacciones frecuentes considera backups cada 4-6 horas o replicación en tiempo real.

¿Es seguro guardar la contraseña de MySQL en el script?

Lo más seguro es usar un archivo ~/.my.cnf con los credenciales y permisos 600, y referenciar ese archivo con la opción --defaults-file en mysqldump. Así la contraseña no queda expuesta en el historial de comandos ni en el crontab.

¿Qué pasa si el servidor remoto para rsync no está disponible?

rsync retornará un código de error distinto de cero. En tu script puedes capturar ese código y registrarlo en el log, o enviar una alerta por correo usando mail. Lo importante es que el backup local ya se habrá creado aunque falle la transferencia remota.

¿Los snapshots del proveedor reemplazan un backup propio?

No del todo. Los snapshots son útiles para rollback rápido ante cambios de configuración, pero suelen estar en la misma infraestructura que el VPS. Un incidente a nivel del proveedor (fallo masivo, error de facturación) puede afectar tanto al VPS como a sus snapshots. Siempre combina ambas estrategias.

¿Prefieres que lo hagamos por ti? En El Enlace resolvemos hosting y desarrollo web profesional.

Recursos útiles

Otros proveedores y guías que vale la pena comparar:

← Todos