sincronização bidirecional com rsync

6

Estou tentando configurar a bi-direção ou a sincronização de duas vias com o rsync. No meu caso eu só preciso apagar os arquivos quando estou sincronizando de B para A. Então, eu estava pensando em rodar o rsync duas vezes da seguinte forma:

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

Este problema com esta solução é que quando eu executo o rsync (B-> A) que seria logo após rodar o rsync (AB), qualquer novo arquivo que for criado entre a sincronização também será removido.

Existe uma maneira de especificar um registro de data e hora como condição de excluir o arquivo apenas se ele for criado antes dessa data / hora.

Atualizado:

Eu entendo que existe uma solução uníssono, mas o problema com o uníssono é necessário para instalar em ambas as extremidades. Estou sincronizando com um servidor remoto e não consigo instalar uníssono no terminal remoto.

    
por Raza 18.01.2016 / 18:16

2 respostas

3

Você pode tentar osync, que é projetado exatamente para essa tarefa. Uma vez eu configurei uma sequência complexa de comandos rsync para fazer o trabalho, mas agora uso osync.

link

Ele usa o rsync internamente, por isso deve ser adequado para qualquer situação em que você possa usar o rsync.

    
por 19.01.2016 / 17:53
4

rsync é a ferramenta errada para essa tarefa, exatamente pelas razões que você encontrou. Em vez disso, considere usar unison :

unison A/ B/

Na primeira vez que você executar isso, ele identificará os arquivos que são exclusivos em A e aqueles que são exclusivamente em B . Ele também sinaliza aqueles que estão em ambos os lugares e pede que você identifique o que deve ser sobrescrito.

Na próxima vez que você executar isso, copiará as alterações de A para B e também de B para A , sinalizando todos os arquivos que foram alterados nos dois locais para resolução 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

Há vários sinalizadores úteis disponíveis para unison , que ajudam a automatizar o processo definindo premissas e, com isso, reduzindo o número de perguntas feitas durante a sincronização.

    
por 18.01.2016 / 23:56