Si alguna vez has perdido archivos por no tener una copia de seguridad, o has tenido que transferir carpetas enormes a un servidor remoto con una conexión lenta, sabes lo valioso que es tener una herramienta fiable. En Linux existe una que lleva décadas siendo el estándar de oro para copias de seguridad y sincronización de archivos: rsync.

En esta guía práctica vas a aprender qué es rsync, cómo funciona y cómo usarlo para proteger tus datos, sincronizar carpetas entre equipos y automatizar copias de seguridad sin complicarte la vida.


¿Qué es rsync y por qué deberías usarlo?

rsync (remote sync) es una herramienta de línea de comandos que sincroniza archivos y directorios entre dos ubicaciones. Puede ser local (de una carpeta a otra en el mismo disco) o remota (entre tu máquina y un servidor).

Su gran ventaja frente a herramientas como cp o scp es que solo transfiere las diferencias. Si ya copiaste una carpeta de 10 GB y solo cambiaste un archivo, rsync detecta qué cambió y solo envía ese archivo. La primera vez puede tardar lo mismo que una copia completa, pero las siguientes son prácticamente instantáneas.

Además, rsync comprime los datos durante la transferencia, lo que acelera las copias por red, y verifica la integridad de los archivos usando sumas de comprobación.


Instalación

rsync viene preinstalado en la mayoría de distribuciones Linux. Si no lo tienes, se instala fácilmente:

ice-tech
# Debian / Ubuntu / derivadas
sudo apt install rsync

# Fedora / RHEL / CentOS
sudo dnf install rsync

# Arch Linux
sudo pacman -S rsync

# macOS (ya viene instalado)
brew install rsync

En Windows puedes usar rsync a través de WSL (Windows Subsystem for Linux), que es la forma más limpia de tenerlo funcionando.


Sintaxis básica

La estructura general de un comando rsync es:

ice-tech
rsync [opciones] origen/ destino/

El detalle importante es la barra inclinada al final del origen. Cambia el comportamiento:

  • rsync -a carpeta/ destino/ → copia el contenido de la carpeta
  • rsync -a carpeta destino/ → copia la carpeta en sí dentro del destino

Para transferencias remotas, usas usuario@servidor:ruta:

ice-tech
rsync -a /home/usuario/documentos/ usuario@servidor:/backups/documentos/

Las opciones que más vas a usar

rsync tiene decenas de opciones, pero con estas cinco cubres el 90% de los casos de uso:

Opción Significado Qué hace
-a archive Modo archivo: preserva permisos, propietario, timestamps, y copia recursivamente
-v verbose Muestra qué archivos se están transfiriendo
-z compress Comprime los datos durante la transferencia (ideal para redes lentas)
-h human-readable Muestra tamaños en formato legible (MB, GB)
--progress Muestra el progreso de la transferencia archivo por archivo

La combinación más común es:

ice-tech
rsync -avzh --progress origen/ destino/

Ejemplos prácticos

1. Copia de seguridad local

Hacer una copia de seguridad de tu carpeta de Documentos a un disco externo montado en /mnt/backup:

ice-tech
rsync -avh --delete ~/Documentos/ /mnt/backup/Documentos/

La opción --delete es importante: elimina del destino los archivos que ya no existen en el origen. Así el backup es un espejo exacto. Úsala con cuidado.

2. Sincronizar con un servidor remoto

Subir los archivos de tu proyecto a un servidor de producción:

ice-tech
rsync -avz --progress ./mi-proyecto/ [email protected]:~/www/mi-proyecto/

3. Excluir archivos

No quieres copiar la carpeta node_modules ni los archivos .git:

ice-tech
rsync -avh --exclude="node_modules" --exclude=".git" ~/proyecto/ /mnt/backup/proyecto/

Puedes usar un archivo de exclusión:

ice-tech
rsync -avh --exclude-from=excluir.txt ~/proyecto/ /mnt/backup/proyecto/

4. Copia de seguridad por SSH con puerto personalizado

Si tu servidor SSH no usa el puerto 22:

ice-tech
rsync -avz -e "ssh -p 2222" ~/datos/ [email protected]:~/backups/

5. Simular antes de ejecutar (modo dry-run)

Siempre que tengas dudas, usa --dry-run para ver qué haría rsync sin ejecutarlo realmente:

ice-tech
rsync -avh --dry-run ~/Documentos/ /mnt/backup/

Esto te muestra qué archivos se copiarían. Si todo está bien, quitas --dry-run y lo ejecutas de verdad.


Automatizar copias de seguridad con cron

La verdadera potencia de rsync se despliega cuando lo combinas con cron para hacer copias automáticas.

Copia diaria a las 2 de la madrugada

Abre el crontab de tu usuario:

ice-tech
crontab -e

Y añade esta línea:

ice-tech
0 2 * * * rsync -avh --delete ~/Documentos/ /mnt/backup/Documentos/ > ~/logs/backup.log 2>&1

Copia semanal los domingos

ice-tech
0 3 * * 0 rsync -avz --delete ~/proyectos/ [email protected]:~/backups/proyectos/

Script de backup con rsync + fecha

Para tener backups con marca de tiempo, puedes crear un pequeño script:

ice-tech
#!/bin/bash
FECHA=$(date +%Y-%m-%d_%H-%M-%S)
rsync -avh ~/Documentos/ /mnt/backup/Documentos_$FECHA/

Guárdalo como backup.sh, dale permisos de ejecución (chmod +x backup.sh) y prográmalo con cron.


Errores comunes y cómo evitarlos

Error: la barra inclinada

El error más frecuente con rsync es confundir carpeta/ con carpeta:

ice-tech
# Copia el contenido de 'fotos/' dentro de 'backup/'
rsync -avh fotos/ backup/

# Copia la carpeta 'fotos' dentro de 'backup/' → backup/fotos/
rsync -avh fotos backup/

Error: olvidar --delete

Si no usas --delete, los archivos que borres del origen se quedarán en el destino para siempre. El backup crecerá sin control. Añádelo siempre que quieras un espejo exacto.

Error: permisos SSH

Al usar rsync remoto, asegúrate de haber configurado las claves SSH:

ice-tech
ssh-keygen -t ed25519
ssh-copy-id [email protected]

Sin claves SSH, rsync te pedirá la contraseña cada vez, lo que hace imposible automatizarlo con cron.

Error: rutas con espacios

Si tu ruta tiene espacios (ej: /mnt/backup/Mis archivos/), escápala con comillas:

ice-tech
rsync -avh ~/Documentos/ "/mnt/backup/Mis archivos/"

Alternativas a rsync

Aunque rsync es el rey indiscutible de la sincronización, existen alternativas según el caso:

Herramienta Cuándo usarla
scp Transferencias simples de un solo archivo
rclone Sincronizar con la nube (Google Drive, Dropbox, S3)
syncthing Sincronización continua entre dispositivos propios
duplicati Backups cifrados con interfaz gráfica
borgbackup Backups con deduplicación y compresión avanzada

Si trabajas con servicios en la nube como Google Drive o Amazon S3, rclone es la mejor opción. Si necesitas sincronización en tiempo real entre varios dispositivos, Syncthing hace eso de forma automática y segura.


Conclusión

rsync es una de esas herramientas que, una vez que aprendes a usarla, no entiendes cómo vivías sin ella. Es rápida, fiable, ligera y está disponible en prácticamente cualquier sistema Unix o Linux.

Con solo unos pocos comandos puedes tener un sistema de copias de seguridad automatizado, sincronizar proyectos entre equipos y dormir tranquilo sabiendo que tus datos están a salvo.

Mi recomendación: empieza con el modo --dry-run para familiarizarte, añade --delete cuando tengas claro lo que hace, y cuando te sientas cómodo, programa una tarea cron y olvídate. Tus archivos se lo agradecerán.