¡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!