Guía del Comando rsync en Linux

Artículos Guías Manuales Sistemas Linux Windows Binario 0

rsync es una poderosa herramienta en Linux utilizada para sincronizar archivos y directorios entre dos ubicaciones, ya sea en la misma máquina o a través de una red. Ofrece muchas opciones avanzadas que permiten la sincronización eficiente y segura de datos. A continuación, se presenta una guía sobre cómo usar rsync.

Instalación

En la mayoría de las distribuciones de Linux, rsync suele estar preinstalado. Sin embargo, si no lo tienes instalado, puedes hacerlo fácilmente:

# En Debian/Ubuntu y derivados:
sudo apt-get install rsync

# En Red Hat/CentOS y derivados:
sudo yum install rsync

# En Fedora:
sudo dnf install rsync

Uso Básico

La sintaxis básica de rsync es:

rsync [opciones] origen destino

Aquí, origen y destino pueden ser archivos, directorios o rutas remotas especificadas de la forma usuario@servidor:/ruta/al/directorio.

Ejemplo Básico

Para copiar un archivo localmente:

rsync -avh /ruta/al/archivo /ruta/al/destino

Para copiar un directorio a otro servidor:

rsync -avh /ruta/al/directorio usuario@servidor:/ruta/al/destino

Opciones Comunes

  • -a: Modo archivo, que recursivamente copia directorios y preserva la mayoría de atributos.
  • -v: Modo verbose, para mostrar información detallada del proceso.
  • -h: Salida legible por humanos.
  • -z: Comprime los datos durante la transferencia.
  • -P: Muestra el progreso de la transferencia y permite reanudar transferencias interrumpidas.
  • --delete: Elimina archivos en el destino que ya no existen en el origen.
Ejemplo con opciones

Para sincronizar dos directorios y eliminar archivos en el destino que no están en el origen:

rsync -avh --delete /ruta/origen/ /ruta/destino/

Sincronización Remota

rsync también se puede utilizar para sincronizar archivos entre máquinas remotas. Es necesario tener acceso SSH al servidor remoto.

Ejemplo de Sincronización Remota

Desde la máquina local al servidor remoto:

rsync -avh /ruta/origen/ usuario@servidor:/ruta/destino/

Desde el servidor remoto a la máquina local:

rsync -avh usuario@servidor:/ruta/origen/ /ruta/destino/

Exclusión de Archivos y Directorios

Para excluir ciertos archivos o directorios de la sincronización, puedes usar la opción --exclude.

Ejemplo de Exclusión

Excluir un archivo específico:

rsync -avh --exclude 'archivo_a_excluir' /ruta/origen/ /ruta/destino/

Excluir múltiples archivos y directorios usando un archivo de patrones:

  1. Crea un archivo exclude.txt con los patrones de exclusión.
  2. Ejecuta rsync con la opción --exclude-from:
rsync -avh --exclude-from='exclude.txt' /ruta/origen/ /ruta/destino/

Sincronización Bidireccional

Para sincronización bidireccional, rsync por sí solo no es suficiente y se suelen utilizar herramientas como Unison.

Consejos y Trucos

  • Modo de prueba: Usa la opción --dry-run para ver qué cambios se realizarían sin ejecutarlos:

    rsync -avh --dry-run /ruta/origen/ /ruta/destino/
  • Log de la transferencia: Guarda un registro de las transferencias utilizando la opción --log-file:

    rsync -avh --log-file=rsync.log /ruta/origen/ /ruta/destino/
  • Límite de velocidad: Limita la velocidad de transferencia con --bwlimit para no saturar el ancho de banda:

    rsync -avh --bwlimit=1000 /ruta/origen/ /ruta/destino/

Conclusión

rsync es una herramienta extremadamente flexible y eficiente para sincronizar archivos y directorios en Linux. Con su amplia variedad de opciones, puedes personalizar tus tareas de sincronización para que se ajusten perfectamente a tus necesidades. Experimenta con las diferentes opciones y combinaciones para sacar el máximo provecho de esta poderosa herramienta.