sincroniza um diretório entre o OSX e o Ubuntu

1

Eu preciso de uma boa maneira de sincronizar um diretório entre meu laptop OSX 10.6 e meu Ubuntu Desktop. O Dropbox obviamente seria uma ótima escolha, entretanto o diretório que eu preciso sincronizar é de propriedade do root em ambas as máquinas e consertar as permissões iria estragar a situação que eu tenho. Eu estava pensando em apenas escrever meu próprio script usando o rsync (o que seria realmente divertido), mas estou me perguntando se talvez haja algo um pouco mais robusto lá fora. Eu já ouvi falar do Unison, mas eu não sei muito sobre isso. Isso seria uma boa opção para mim, ou você pode chegar a algo melhor? Obrigado!

    
por Erreth 11.07.2011 / 05:12

2 respostas

2

duas respostas fáceis, (e as mesmas que você já mencionou):

  1. Uníssono se você quiser algo que "simplesmente funcione". Tem uma boa interface gráfica e você pode facilmente definir uma tarefa lá e chamar a partir da linha de comando, um script, cron , o que for. Eu uso para sincronizar meu laptop e minha esposa com os diretórios de usuário respectivos na área de trabalho. É realmente assim tão fácil.

  2. rsync se você quiser controlar (quase) todos os aspectos. Há muitos argumentos que permitem que você respeite, modifique ou destrua as permissões, seja por número ou por nome, etc. Na verdade, raramente há necessidade de um script completo; geralmente você só precisa encontrar (por tentativa e erro) a melhor combinação de argumentos.

por 11.07.2011 / 05:50
0

O Unison é uma boa solução se você precisar fazer uma sincronização bidirecional e quiser resolver os conflitos manualmente. Ele mantém uma nota do que foi sincronizado da última vez, então ele sabe se um arquivo foi alterado em ambos termina.

Se você quiser uma solução puramente em segundo plano que aconteça automaticamente (por exemplo, em cron ) e tenha uma sincronização unidirecional pura, rsync poderá ser melhor. O Unison mantém metadados abrangentes (em ~/.unison ) que você não precisa se estiver fazendo uma sincronização unidirecional.

O fato de ambas as extremidades pertencerem ao root complica consideravelmente as coisas, esteja você usando rsync ou Unison. Você precisará usar sudo no destino para obter acesso de gravação, mas não deseja ser ssh -ing na origem como root. Desde que a origem seja legível por todos, você poderá fazer isso executando sudo rsync no destino e fornecendo um usuário não raiz explícito para a origem ( user@host:... ). Observe que você pode usar a autenticação por chave pública e configurar o arquivo authorized_keys para que apenas rsync possa ser usado com essa chave.

Em uma situação, resolvi isso exportando o diretório inteiro com o daemon rsync , permitindo assim o acesso anônimo. Isso contorna as permissões, obviamente, mas minha real necessidade era produzir um conjunto específico de propriedades e permissões na extremidade receptora, não proteger o fim da fonte.

    
por 11.07.2011 / 06:17