Estou tentando configurar a sincronização bidirecional ou bidirecional com o rsync. No meu caso, só preciso excluir os arquivos ao sincronizar de B para A. Então, pensei em executar o rsync duas vezes da seguinte maneira:
rsync -rtuv ./A/ ./B/
rsync -rtuv --delete ./B/ ./A/
Esse problema com esta solução é que, quando executo o rsync (B-> A), que seria logo após executar o rsync (AB), qualquer novo arquivo criado entre a sincronização também será removido.
Existe uma maneira de especificar um carimbo de data / hora como condição para que ele exclua o arquivo apenas se ele tiver sido criado antes dessa data / hora.
Atualizada:
Entendo que existe uma solução uníssona, mas é necessário instalar o problema com uníssono nas duas extremidades. Estou sincronizando com um servidor remoto e não consigo instalar uníssono na extremidade remota.
fonte
Respostas:
Você pode tentar o osync, projetado exatamente para esta tarefa. Certa vez, configurei uma sequência complexa de comandos rsync para fazer o trabalho, mas agora uso o osync.
https://github.com/deajan/osync
Ele usa o rsync internamente, portanto deve ser adequado para qualquer situação em que você possa usar o rsync.
fonte
rsync
é a ferramenta errada para esta tarefa, exatamente pelos motivos que você encontrou. Em vez disso, considere usarunison
:Na primeira vez em que você executar isso, ele identificará os arquivos que estão exclusivamente dentro
A
e os que estão dentroB
. Ele também sinalizará aqueles que estão nos dois lugares e solicitará que você identifique qual deve ser substituído.Na próxima vez em que você executar isso, ele copiará as alterações de
A
paraB
e tambémB
paraA
, sinalizando todos os arquivos que foram alterados nos dois locais para resolução manual.Há vários sinalizadores úteis disponíveis para
unison
ajudar a automatizar o processo, definindo suposições e reduzindo o número de perguntas que você faz durante a sincronização.fonte
O que você realmente precisa é do Rclone . Rclone é rsync para armazenamento em nuvem (caixa, caixa de depósito, nextcloud, ftp etc.) e armazenamento local.
fonte