rsync es una herramienta de sincronización y transferencia de archivos altamente eficiente y flexible en sistemas Unix.


rsync es una herramienta de sincronización y transferencia de archivos altamente eficiente y flexible en sistemas Unix. Diseñada para copiar y sincronizar archivos y directorios tanto localmente como a través de una red, rsync es famosa por su capacidad de minimizar el uso del ancho de banda al transferir únicamente las diferencias entre los archivos fuente y destino.

¿Cómo funciona rsync?

El funcionamiento de rsync se basa en un algoritmo delta-transfer, que compara los archivos fuente y destino y transfiere solo las partes modificadas de los archivos. Esto permite realizar transferencias rápidas y eficientes, especialmente en archivos grandes con cambios menores.

Principales características

  • Sincronización Incremental: Solo transfiere las diferencias entre los archivos.
  • Preservación de Permisos: Puede mantener los permisos de archivos, tiempos de modificación, y propietarios.
  • Compresión: Soporta compresión durante la transferencia para reducir el uso del ancho de banda.
  • Protocolos de Autenticación: Puede utilizar SSH para transferencias seguras.
  • Capacidad de Exclusión/Inclusión: Permite especificar archivos o directorios que deben ser excluidos o incluidos en la transferencia.

Usos Comunes de rsync

A continuación, os explicamos los usos comunes del comando:

  1. Backup y Restauración: Crear copias de seguridad locales o remotas de archivos y directorios.
  2. Sincronización de Directorios: Mantener directorios en diferentes sistemas sincronizados.
  3. Migración de Datos: Transferir grandes cantidades de datos entre servidores de manera eficiente.

Sintaxis Básica

La sintaxis general de rsync es la siguiente:

rsync [opciones] origen destino

Donde origen y destino pueden ser archivos o directorios. El destino puede ser local o remoto.

Sincronización básica

Para sincronizar un directorio local con otro:

rsync -av /ruta/a/directorio1/ /ruta/a/directorio2/
  • -a (archive): Modo de archivo, que preserva permisos, tiempos de modificación, y enlaces simbólicos.
  • -v (verbose): Muestra información detallada del proceso de sincronización.

Sincronización remota

Para sincronizar un directorio local con un directorio en un servidor remoto:

rsync -av /ruta/a/directorio/ usuario@servidor:/ruta/a/destino/

Exclusión de Archivos

Para excluir ciertos archivos o directorios de la sincronización:

rsync -av --exclude 'archivo.txt' --exclude 'directorio/' /ruta/a/origen/ /ruta/a/destino/

Compresión durante la Transferencia

Para habilitar la compresión durante la transferencia, utiliza la opción -z:

rsync -avz /ruta/a/origen/ usuario@servidor:/ruta/a/destino/

Eliminación de Archivos en el Destino

Para eliminar archivos en el destino que no están presentes en el origen:

rsync -av --delete /ruta/a/origen/ /ruta/a/destino/

Transferencia sobre SSH

Para utilizar SSH como protocolo de transferencia, utiliza la opción -e:

rsync -av -e s /ruta/a/origen/ usuario@servidor:/ruta/a/destino/

Sincronización Bidireccional

Para sincronizar bidireccionalmente dos directorios:

rsync -av --delete /ruta/a/directorio1/ /ruta/a/directorio2/
rsync -av --delete /ruta/a/directorio2/ /ruta/a/directorio1/

Conclusión

rsync es una herramienta poderosa y versátil para la sincronización y transferencia de archivos en sistemas Unix. Sus múltiples opciones permiten realizar desde simples copias locales hasta complejas sincronizaciones remotas y bidireccionales, garantizando eficiencia y seguridad en el manejo de datos. Con un buen entendimiento de sus opciones y parámetros, rsync puede ser una herramienta invaluable para administradores de sistemas y usuarios avanzados.


¿Buscas otro comando?

¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!

Diccionario de comandos para GNU/Linux

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación