¡Hola fronters! Si alguna vez has tenido que copiar archivos entre servidores, hacer backups o simplemente mantener dos carpetas sincronizadas, seguro que has escuchado hablar de rsync. Hoy vamos a ver a fondo esta herramienta imprescindible para cualquier administrador de sistemas.

rsync (remote sync) es una de las herramientas más potentes y versátiles del ecosistema Linux. Su función principal es sincronizar archivos y directorios de forma eficiente, ya sea localmente o entre máquinas a través de SSH. Su gran ventaja: solo transfiere las diferencias, no los archivos completos, lo que ahorra ancho de banda y tiempo.

Instalación

rsync viene preinstalado en casi todos los sistemas Linux. Si por alguna razón no lo tienes:

# Debian/Ubuntu
sudo apt install rsync

# Fedora/RHEL
sudo dnf install rsync

# macOS
brew install rsync

Sintaxis básica

rsync [opciones] origen/ destino/

Casos de uso comunes

1. Copia local

Equivalente a cp pero con progreso y verbosidad:

rsync -avh /carpeta/origen/ /carpeta/destino/
  • -a (archive): preserva permisos, dueños y timestamps
  • -v (verbose): muestra lo que hace
  • -h (human-readable): tamaños legibles

2. Copia remota vía SSH

Del servidor a local:

rsync -avh usuario@servidor:/remoto/carpeta/ /local/carpeta/

De local al servidor:

rsync -avh /local/carpeta/ usuario@servidor:/remoto/carpeta/

3. Excluir archivos

rsync -avh --exclude="*.log" --exclude="node_modules/" origen/ destino/

4. Sincronización completa (borrar archivos extra)

rsync -avh --delete origen/ destino/

CUIDADO: --delete borra en destino lo que no exista en origen. Siempre prueba primero con --dry-run.

5. Simular antes de ejecutar

rsync -avh --dry-run origen/ destino/

El dry-run te muestra qué va a pasar sin tocar nada. Imprescindible cuando usas --delete.

6. Comprimir en tránsito

rsync -avhz origen/ destino/

-z comprime los datos durante la transferencia, ideal para conexiones lentas o limitadas.

Flags más útiles de rsync

Flag            Significado            Uso
-a              Archive                Casi siempre
-v              Verbose                Ver lo que hace
-h              Human-readable         Tamaños claros
-z              Comprimir              Conexiones lentas
-P              Progress + partial     Reanuda si se corta
-n              Dry-run                Simular
--delete        Borrar extra           Sincronización exacta
--exclude       Excluir patrón         Filtrar archivos

Ejemplo completo

rsync -avhP --delete --exclude=".git/" \
  /proyecto/ usuario@servidor.com:/backups/proyecto/

Este comando sincroniza /proyecto/ con el servidor remoto, muestra progreso, reanuda si la conexión se corta, borra lo que sobre en el destino y excluye la carpeta .git.

Conclusión

rsync es una herramienta simple, potente y ubicua en el mundo Linux. Con estos 6 casos de uso cubres el 90% de las situaciones del día a día: desde backups locales hasta sincronización remota con servidores. Es rápido, eficiente y te saca de apuros cuando más lo necesitas.

Mi consejo: hazte amigo de rsync -avh como base, añade --dry-run cuando tengas dudas y --delete solo cuando estés seguro. El resto viene solo con la práctica.

¿Usas rsync en tu día a día? ¿Tienes algún truco o alias favorito? Déjalo en los comentarios y compartimos conocimiento entre fronters. ¡Hasta la próxima!