
Eu tenho duas máquinas Ubuntu, um laptop e um desktop. O que eu desejo fazer é criar uma pasta em ambas as máquinas nos caminhos 'path1' e 'path2'. Quero configurar a sincronização entre as duas pastas sempre que elas estiverem conectadas à mesma rede local (Desktop por Ethernet e Laptop por WLAN). Por exemplo, se eu criar um arquivo path1/x, ele também aparecerá no path2 como path2/x.
Existe uma maneira de fazer isso? [Tudo bem se a sincronização de exclusão não funcionar e eu tiver que excluir manualmente um arquivo de ambos os diretórios simultaneamente]
Responder1
[Respondendo à minha própria pergunta, pois encontrei uma boa maneira de fazer isso]
Use unison
a ferramenta desenvolvida por Benjamin Pierce na U Penn.
Vamos supor que você tenha dois diretórios,
/home/user/Documents/dirA/
e/home/user/Documents/dirB/
Para sincronizar esses dois, você pode usar:
~$unison -ui text /home/user/Documents/dirA/ /home/user/Documents/dirB/
Na saída, unison
exibirá todo e qualquer diretório e arquivo que estiverdiferentenos dois diretórios que você solicitou para sincronizar. Ele recomendará sincronizar aditivamente (replicar o arquivo ausente em ambos os locais) na execução inicial, depois criar e manter uma árvore de sincronização em sua máquina e, nas execuções subsequentes, implementará a sincronização verdadeira (ou seja, se você excluir um arquivo do .../dirA
, ele também será excluído .../dirB
. Você também pode comparar cada alteração e, opcionalmente, optar por fazê-lo.avançarourevertersincronizar entre os dois diretórios.
Opcionalmente, para iniciar a interface gráfica, basta remover a -ui text
opção do seu comando, embora eu ache a cli
mais simples e rápida de usar.
Mais sobre isso:Documentação Unison no GitHub.
Responder2
Confira este tutorial emcomo sincronizar pastas usando rsync.
Saúde