it-swarm-es.com

¿Rsync permite que los archivos se sincronicen en ambos sentidos?

He hecho una copia de seguridad de un servidor web Linux usando rsync con cygwin. Ahora tengo una copia perfecta del servidor en mi computadora portátil con Windows. Si elimino o modifico un archivo en mi computadora portátil y ejecuto rsync nuevamente con cygwin, ¿eliminará/actualizará el mismo archivo en el servidor? Tengo la impresión de que si elimino/modifico en el servidor y ejecuto rsync en mi computadora portátil, eliminará/modificará el archivo local en mi computadora portátil, pero ¿funciona esto a la inversa?

25
Dan Hastings

Rsync realiza una sincronización unidireccional, sin embargo, depende de usted decidir en qué dirección va la sincronización.

La sintaxis del comando Rsync es la siguiente:

rsync [OPTION...] SRC... [DEST]

Tenga en cuenta que especifica la sincronización del origen al destino. El origen y el destino pueden ser cualquier ruta local o remota.

Por ejemplo, si desea copiar archivos de su servidor a su computadora portátil, haga lo siguiente:

rsync [OPTION...] <server-path> <laptop-path>

Para sincronizar en la dirección opuesta que haces:

rsync [OPTION...] <laptop-path> <server-path>

Entonces, para responder a su pregunta: depende de cómo ejecute rsync.

Si desea que los archivos se eliminen en el destino, debe usar la opción --delete. Pero tenga cuidado con esto, porque si comete un error al especificar su fuente, terminará eliminando todo en su destino. Es más seguro probar su sincronización sin la opción --delete Primero y una vez que esté satisfecho con su funcionamiento, puede agregar la opción --delete.

Como lo sugiere masegaloeh en los comentarios a continuación, la opción -n O --dry-run También se puede usar para probar el comportamiento del comando rsync.

29
grekasius

Una herramienta de envoltorio escrita en python3 llamada bsync que envuelve el comando find y rsync simplifica la tarea. Repositorio de Github: https://github.com/dooblem/bsync

No tengas miedo cuando esté en github (es decir, de una manera que creas que debes ser un programador para usar la herramienta).

1
biocyberman