Backups incrementales con rsync y cron: guía completa

backups incrementales rsync

📅 Publicado el 24 de octubre, 2026 · Por Equipo RedServicio

Pocas herramientas han calado tan hondo entre webmasters y desarrolladores como los backups incrementales rsync. Y tiene explicación: protegen tus datos sin devorar espacio en disco ni ancho de banda. La diferencia con una copia completa tradicional es simple —solo se transfieren los archivos que han cambiado desde la última copia— pero el efecto en tiempo de ejecución y consumo de recursos es enorme. En esta guía verás cómo montar un sistema de copias automáticas con rsync y cron, desde la configuración de las claves SSH hasta la programación de tareas periódicas en tu servidor.

¿Qué son los backups incrementales y por qué usarlos?

La idea es sencilla. Una vez hecha la primera copia completa, las siguientes ejecuciones solo guardan las modificaciones. Nada más. Si tu web ocupa 10 GB pero desde la última copia solo has actualizado 50 MB, esos 50 MB son lo único que viaja.

¿Ventajas frente a los backups completos? Varias, y de peso:

  • Ahorro de espacio: al no duplicar archivos sin cambios, el almacenamiento necesario baja de forma considerable.
  • Velocidad: las copias diarias tardan minutos, no horas. Si tu servidor tiene una ventana de mantenimiento estrecha, esto lo cambia todo.
  • Menos ancho de banda: sobre todo cuando el destino del backup está en un servidor remoto.
  • Más frecuencia posible: como son tan rápidas, puedes programar copias cada hora sin que se resienta el rendimiento de la web.

En producción, una estrategia bastante extendida es combinar ambos mundos: una copia completa semanal y backups incrementales diarios. Con eso tienes puntos de restauración recientes sin llenar el disco.

rsync explicado: la herramienta ideal para copias incrementales

rsync (remote synchronization) es una utilidad de línea de comandos disponible en prácticamente cualquier distribución Linux. Sincroniza archivos y directorios entre dos ubicaciones, locales o remotas. ¿Su truco? El algoritmo delta-transfer: en lugar de copiar archivos enteros, rsync analiza los bloques de datos y transfiere únicamente los que difieren entre origen y destino. Nada de reinventar la rueda en cada pasada.

Un ejemplo básico de uso local sería:

  1. -a (archive): modo archivo, preserva permisos, propietarios, marcas de tiempo y enlaces simbólicos.
  2. -v (verbose): muestra en pantalla los archivos transferidos.
  3. –delete: elimina en el destino los archivos que ya no existen en el origen, manteniendo una copia espejo exacta.

Para sincronizar con un servidor remoto por SSH, la sintaxis sería la siguiente:

Consejo práctico: antes de cualquier ejecución real, añade –dry-run. Así ves qué archivos se copiarían sin tocar nada. Es la mejor forma de evitar sustos, sobre todo si usas –delete (y créeme, con –delete los sustos duelen).

Con estas capacidades sobre la mesa, rsync se perfila como la herramienta ideal para implementar backups incrementales de forma fiable en cualquier servidor Linux.

Preparando tu servidor: claves SSH y accesos

Si vas a automatizar los backups hacia un servidor remoto, lo primero es configurar la autenticación por claves SSH. ¿Por qué? Porque cron no puede introducir contraseñas de forma interactiva. El proceso es corto:

  1. Genera el par de claves en el servidor de origen con ssh-keygen -t ed25519. Acepta la ruta por defecto y, si quieres, protege la clave con una frase de paso.
  2. Copia la clave pública al servidor de destino con ssh-copy-id usuario@servidor-destino. Desde ese momento entrarás sin contraseña.
  3. Verifica el acceso con ssh usuario@servidor-destino. Si entras directamente, listo: la autenticación funciona.

Recomendaciones de seguridad importantes: crea un usuario específico para los backups, con permisos limitados a los directorios necesarios. Y restringe la clave en el archivo authorized_keys del destino añadiendo un prefijo como from=»IP-del-origen» o command=»…» para limitar su uso. Así, aunque la clave acabara en manos equivocadas, el daño posible sería mínimo.

Con las claves SSH configuradas y rsync verificado, tu servidor queda listo para automatizar las copias. Si prefieres no pelearte con esta configuración, en RedServicio ofrecemos hosting con backups automáticos y soporte 24/7 que puede encargarse de todo esto por ti. En la siguiente parte de la guía: cómo crear el script de backup y programarlo con cron.

Cómo crear backups incrementales rsync con ejemplos de código

Lo más sencillo para montar backups incrementales con rsync es tirar de la opción –link-dest, que crea enlaces duros a los archivos que no han cambiado respecto a la copia anterior. El resultado: cada backup apenas ocupa lo que se ha modificado, aunque a efectos prácticos funciona como una copia completa.

Un script básico podría ser este:

#!/bin/bash
FECHA=$(date +%Y-%m-%d)
ORIGEN=/var/www/miweb/
DESTINO=/backups/miweb/
rsync -a --delete --link-dest=/backups/miweb/$(ls -t /backups/miweb | head -1) $ORIGEN $DESTINO$FECHA/

Vamos opción por opción, porque hay varias que conviene entender antes de poner esto en producción:

  • -a: modo archivo. Preserva permisos, propietarios, marcas de tiempo y enlaces simbólicos.
  • –delete: borra en el destino los archivos que ya no están en el origen. La copia se mantiene fiel.
  • –link-dest: apunta al backup anterior; lo que no cambió se enlaza en vez de copiarse otra vez.
  • $(date +%Y-%m-%d): genera una carpeta con la fecha del día para cada copia.

¿Y si quieres enviar la copia a otro servidor? Añades el destino en formato usuario@host:/ruta y usas claves SSH para no tener que teclear la contraseña:

rsync -az -e ssh --delete /var/www/miweb/ usuario@servidor:/backups/miweb/

Consejo: usa –exclude para saltarte carpetas pesadas o que no aportan nada. Algo como –exclude=’cache’ o –exclude=’*.log’. Ganas en velocidad y en disco. Doble beneficio.

Automatización con cron: programa tus copias sin esfuerzo

Con el script ya escrito, guárdalo en una ruta tipo /usr/local/bin/backup-incremental.sh, dale permisos con chmod +x y edita el crontab de tu usuario (crontab -e).

Algunas programaciones que funcionan bien en la práctica:

  • 0 3 * * * — a diario, a las 3 de la madrugada.
  • 0 */6 * * * — cada seis horas. Útil si la web recibe mucho tráfico.
  • 30 4 * * 0 — domingos a las 4:30, para copias semanales.

Redirige la salida a un log; te lo agradecerás cuando algo falle y quieras saber por qué: /usr/local/bin/backup-incremental.sh >> /var/log/backup.log 2>&1. Y no olvides las copias viejas. Una regla como find /backups/miweb -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; dentro del propio script te deja con el último mes de snapshots, ni más ni menos.

Ejecuta el script a mano antes de programarlo. Siempre. Y al día siguiente, comprueba que la carpeta con la fecha existe y tiene contenido. Si prefieres olvidarte de tareas programadas, en RedServicio nuestro hosting incluye backups automáticos gestionados y soporte 24/7 para cuando algo se tuerce.

Conclusión: protege tu web con backups automáticos

Backups incrementales rsync con cron. Poco espacio, poco ancho de banda (la transferencia es diferencial) y un histórico completo que restauras en minutos. Entre rsync, –link-dest y cron tienes el control de tus datos sin pagar un euro en herramientas.

Eso sí: un backup que nunca has probado a restaurar es, en el fondo, una incógnita. Revisa los logs de vez en cuando, haz pruebas de restauración y guarda al menos una copia fuera del servidor principal. Y si llevas una web profesional y prefieres delegar esto, en RedServicio tenemos hosting con backups automáticos y soporte 24/7 en español. Tú te ocupas de tu proyecto; de la seguridad, nos ocupamos nosotros.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Página Gratis — Crea tu web gratis

Clisec — Seguridad informática

Scroll al inicio