Cómo usar Rsync para sincronizar directorios locales

¿Qué es Rsync?

Rsync, significa “sincronización remota”, es una herramienta de sincronización de archivos remotos y locales. Utiliza un algoritmo que minimiza la cantidad de datos copiados, moviendo solo las partes de los archivos que cambiaron.

Rsync es una herramienta de sincronización muy flexible y habilitada para la red. Debido a su presencia universal en sistemas Linux y sistemas similares a Unix, y su popularidad como herramienta para las secuencias de comandos del sistema, se incluye en la mayoría de las distribuciones de Linux de manera predeterminada.

En resumen, lo tienes en todos los servidores que usan Linux y ahorra tiempo cuando has de copiar/sincronizar datos entre servidores o directorios dentro del mismo servidor. Muy recomendable saber usar esta herramienta.

¿Como usar Rsync?

La sintaxis básica de rsync es muy sencilla, y opera de forma similar a ssh, scp y cp.

Para sincronizar el contenido de dir1 a dir2 en el mismo sistema, has de escribir lo siguiente:

rsync -a dir1/ dir2

La opción -a es un indicador combinado. Significa “archivo” y sincroniza de manera recursiva, además conserva los enlaces simbólicos, los archivos especiales y de dispositivo, fechas de modificación, grupo, propietario y permisos. Se utiliza más con más frecuencia que -r y, generalmente, es lo que querrás utilizar.

Nota importante

Es posible que hayas notado que hay una barra diagonal (/) al final del primer argumento en los comandos anteriores.

Eso es necesario para referirse a “el contenido de dir1”. La alternativa, sin la barra diagonal, colocaría dir1, incluyendo el directorio, dentro de dir2. Eso crearía una jerarquía similar a esta: /dir2/dir1/[files]

Opciones útiles para Rsync

Rsync proporciona muchas opciones para alterar su comportamiento predeterminado.

Si estás transfiriendo archivos que aún no se comprimieron, como los archivos de texto, puedes reducir la transferencia de la red comprimiendo los ficheros con la opción -z.

Y el indicador -P es muy útil. Combina los indicadores --progress y --partial. El primero de ellos proporciona una barra de progreso para las transferencias, y el segundo permite reanudar las transferencias interrumpidas.

Por tanto, recomiendo su uso con -azP:

rsync -azP dir1/ dir2

¿Necesitas un experto en Drupal?

Desarrollador Drupal senior, freelance, especializado en lo más complejo: migraciones, sitios multilingüe, plataformas SaaS e integración con Stripe. Uso IA para reducir tiempos y costes de entrega, con revisión experta en cada línea de código.

Sin agencias, sin intermediarios. Contacto directo con quien hace el trabajo.