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

25

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?

Dan Hastings
fuente
12
Esta no es una respuesta a su pregunta, pero debería echarle un vistazo unison. Es una herramienta de sincronización que guarda el estado del archivo en ambas copias y, por lo tanto, permite la sincronización bidireccional. También hay un paquete cygwin.
Dubu

Respuestas:

29

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 --deleteopción. 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 --deleteopción primero y una vez que esté satisfecho con su funcionamiento, puede agregar la --deleteopción.

Según lo sugerido por masegaloeh en los comentarios de abajo, -no --dry-runopción puede también ser utilizado para probar rsyncel comportamiento del sistema.

grekasius
fuente
99
Nota adicional: Para el ensayo de comportamiento de rsync, puede utilizar el parámetro -no --dry-run, para que sepa qué archivo será borrado y modificado
masegaloeh
1

Una herramienta de envoltura escrita en python3 llamada bsyncque ajusta findy ordena rsyncsimplifica la tarea. Repo de Github: https://github.com/dooblem/bsync

No se asuste cuando está en github (es decir, de una manera que cree que debe ser un programador para usar la herramienta).

biocyberman
fuente
-1

considere usar --delete-after y no --delete, esto asegurará que su destinatario elimine los archivos después de la transferencia, no antes.

Moti
fuente
Supongo que los votos negativos se deben a que el OP no está tratando de rsynceliminar nada. Está borrando cosas por su cuenta. Dicho esto, una pista útil para rsync'ing en general. Gracias.
Harperville