Sincronização / backup unidirecional com o Unison

13

Estou usando a ferramenta de sincronização Unison com minhas máquinas Mac OSX e Ubuntu 9.10 para fazer backup de minhas músicas do Mac para o Ubuntu. O problema é que eu quero que meu Mac seja a fonte e o Ubuntu o alvo, para que a máquina Ubuntu seja uma cópia exata da pasta Music no Mac o tempo todo, mas se eu excluir algo do Ubuntu, ele ganhará ' não seja excluído no Mac. Eu olhei para os documentos, mas está meio que passando por cima da minha cabeça no momento.

roflwaffle
fonte

Respostas:

1

Uma ferramenta melhor para o trabalho pode ser o rsync (você precisará instalá-lo nos dois computadores). Eu o uso para manter minha pasta de músicas do laptop sincronizada com um servidor de arquivos doméstico, que é bastante semelhante à sua situação. O rsync é especializado em manter uma cópia espelhada atualizada.

Uma linha de comando como esta pode ser útil (supondo que você a execute no Ubuntu):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

É muito fácil mudar a linha acima se você quiser executá-la no Mac e enviar para o computador Ubuntu em vez de puxar.

TheToasterThatCould
fonte
33

Use unison -force:

Manual:

A inclusão da preferência -force rootfaz com que o Unison resolva todas as diferenças (mesmo alterações não conflitantes) em favor da raiz. Isso efetivamente altera o Unison de um sincronizador para um utilitário de espelhamento. Você também pode especificar -force newer(ou -force older) para forçar o Unison a escolher o arquivo com o modtime posterior (anterior). Nesse caso, a -timespreferência também deve estar ativada. Essa preferência é substituída pela forcepartialpreferência. Essa preferência deve ser usada apenas se você tiver certeza de que sabe o que está fazendo!

Por exemplo (usando o modo soquete). Inicie o ouvinte uníssono no diretório em que deseja ser um espelho de outra coisa. Alveje esse soquete na chamada de cliente uníssono. Forçar faz com que as mudanças sejam todas de UMA MANEIRA a partir da raiz especificada.

cd /target/mirror/directory
unison -socket 123456 &

Em outro lugar ou no mesmo host:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
Rich K.
fonte
1
A sintaxe do arquivo de perfil é especificar o caminho para o diretório raiz da variável force. Ou seja,force = /home/me/mysynchdir
Daniel
2

Embora a resposta de TheToasterThatCould funcione, observe que ele não fará o backup correto do sistema de arquivos Mac "Resource Forks"

Embora a versão para Mac OSX do rsync reconheça a utilização de recursos, as versões linux do rsync não são (e provavelmente nunca serão, porque a versão da Apple para rsync é específica para OSX e não apresenta esses garfos de recursos para rsync na outra extremidade). uma maneira que uma versão não-OSX do rsync pode manipular). O resultado disso é que os garfos de recursos não serão sincronizados entre máquinas Mac e Linux.

Certos aplicativos para Mac utilizam bifurcações de recursos para armazenar dados relacionados ao arquivo específico. Se você tem certeza de que seus arquivos que você está sincronizando não precisam ou usam garfos de recursos, deve-se usar o rsync.

Se você deseja sincronizar os garfos de recursos, o unison será a melhor abordagem, pois (de acordo com os documentos do unison), ele pode sincronizar os garfos de recursos.

tudo natural
fonte
0

O FreeFileSync é um aplicativo de código aberto capaz de espelhar um diretório. Pode ser executado para sincronização unidirecional ou bidirecional ou no modo "contribuir". Posso dizer que ele pode fazer o trabalho do Synctoy da Microsoft. O FreeFileSync pode ser usado livremente no Mac OS X, Linux e Windows.

Teo
fonte
-1

Atualmente, unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchfuncionará, onde -batchnão indica nenhuma pergunta

Jin
fonte