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:
- Crea un archivo
exclude.txt
con los patrones de exclusión. - 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.