O Rsync permite que os arquivos sejam sincronizados de duas formas?


25

Eu fiz o backup de um servidor web linux usando o rsync com o cygwin. Agora tenho uma cópia perfeita do servidor no meu laptop Windows. Se eu excluir ou modificar um arquivo no meu laptop e executar o rsync novamente com o cygwin, ele excluirá / atualizará o mesmo arquivo no servidor? Estou com a impressão de que, se eu excluir / modificar no servidor e executar o rsync no meu laptop, ele excluirá / modificará o arquivo local no meu laptop, mas isso funcionará ao contrário?


12
Esta não é uma resposta para sua pergunta, mas você deve dar uma olhada unison. É uma ferramenta de sincronização que salva o estado do arquivo nas duas cópias e, portanto, permite a sincronização bidirecional. Há também um pacote cygwin.
Dubu

Respostas:


29

O Rsync faz uma sincronização unidirecional, no entanto, cabe a você decidir para que lado a sincronização será.

A sintaxe do comando Rsync é a seguinte:

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

Observe que você especifica a sincronização da origem ao destino. A origem e o destino podem ser qualquer caminho local ou remoto.

Por exemplo, se você deseja copiar arquivos do servidor para o laptop, faça:

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

Para sincronizar na direção oposta, você faz:

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

Então, para responder sua pergunta: depende de como você executa o rsync.

Se você deseja que os arquivos sejam excluídos no destino, é necessário usar a --deleteopção Mas tenha cuidado com isso, porque se você cometer um erro ao especificar sua fonte, você removerá tudo o que estiver no seu destino. É mais seguro testar sua sincronização sem a --deleteopção primeiro e, quando estiver satisfeito com o funcionamento, você pode adicionar a --deleteopção.

Conforme sugerido por masegaloeh nos comentários abaixo, -nou a --dry-runopção também pode ser usada para testar o rsynccomportamento do comando.


9
Nota adicional: Para testar o comportamento rsync, você pode usar o parâmetro -nou --dry-run, então você vai saber qual arquivo será excluído e modificado
masegaloeh

1

Uma ferramenta de invólucro escrita em python3 denominada bsyncwraps finde rsynccomando simplifica a tarefa. Repo do Github: https://github.com/dooblem/bsync

Não se assuste quando estiver no github (isto é, de uma maneira que você acha que deve ser um programador para usar a ferramenta).


-1

considere usar --delete-after e não --delete, isso garantirá que o seu destinatário exclua os arquivos após a transferência, não antes.


Entendo que os votos negativos são porque o OP não está tentando rsyncexcluir nada. Ele está excluindo coisas por conta própria. Dito isto, dica útil para sincronizar em geral. Obrigado.
harperville
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.