sincronización bidireccional con rsync

Pregunta:

Estoy intentando configurar la sincronización bidireccional o bidireccional con rsync. En mi caso, solo necesito eliminar los archivos cuando sincronizo de B a A. Entonces, estaba pensando en ejecutar rsync dos veces de la siguiente manera:

rsync -rtuv ./A/ ./B/
rsync -rtuv --delete ./B/ ./A/

Este problema con esta solución es que cuando ejecuto rsync (B-> A), que sería justo después de ejecutar rsync (AB), también se eliminará cualquier archivo nuevo que se cree entre la sincronización.

¿Hay alguna forma en que pueda especificar una marca de tiempo como condición para que solo elimine el archivo si se creó antes de esta fecha / hora?

Actualizado:

Entiendo que hay una solución al unísono, pero es necesario instalar el problema con unísono en ambos extremos. Estoy sincronizando con un servidor remoto y no puedo instalar unísono en el extremo remoto.

Respuesta:

rsync es la herramienta incorrecta para esta tarea, exactamente por las razones que ha encontrado. En su lugar, considere usar unison :

unison A/ B/

La primera vez que ejecute esto, identificará los archivos que están únicamente en A y los que están únicamente en B También marcará los que están en ambos lugares y le pedirá que identifique cuál se va a sobrescribir.

La próxima vez que ejecute esto, copiará los cambios de A a B y también de B a A , marcando cualquier archivo que haya sido modificado en ambos lugares para resolución manual.

mkdir A B
date > A/date
who > B/who
unison A/ B/
# Lots of output from unison, showing synchronisation

ls A
date    who
ls B
date    who

date > A/date
unison A/ B/
# Lots of output from unison, showing synchronisation

Hay una serie de indicadores útiles disponibles al unison que ayudan a automatizar el proceso al definir suposiciones y, por lo tanto, reducir la cantidad de preguntas que se le hacen durante la sincronización.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım