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
Tags

¿Tienes algún proyecto en mente?

Si quieres hacer algo en Drupal tal vez puedas contratarme.

Ya sea para consultoría, desarrollo o mantenimiento de sitios web Drupal.