Como sincronizar arquivos / dados entre dois PCs em uma rede doméstica?


11

Eu tenho um desktop e um laptop com quase os mesmos arquivos no diretório inicial. Às vezes eu fazer mudanças em ~/Music, ~/Documentsetc. Mas essas mudanças de curso não afetam a outra máquina.

Então, eu quero ter uma solução para sincronizar todos os dados nas pastas pessoais do meu laptop e desktop. Posso conectá-los com cabo cruzado de vez em quando.

Não quero usar o Ubuntu One ou o Dropbox (os arquivos são grandes e não há necessidade de usar a Internet quando os dois estão em uma rede doméstica).


O Dropbox também oferece sincronização de rede, então talvez não seja necessariamente a ferramenta errada.
turbo

Respostas:


8

Para um pequeno conjunto de arquivos, sugiro Dropbox ou Ubuntu One , mas parece que você deseja sincronizar sua coleção de músicas entre computadores, e nenhum deles é particularmente adequado por duas razões:

  • Ambos são sincronizados com a Internet, o que significa que grandes coleções de arquivos levarão muito tempo para serem baixadas e enviadas
  • Eles oferecem uma quantidade limitada de espaço (com a capacidade de comprar mais), o que significa que, para uma grande coleção de arquivos, você pode acabar tendo que gastar muito dinheiro

Unison , que é o que eu uso para replicação local, não possui nenhuma dessas limitações (inerentemente). Você pode sincronizar através da sua rede local, o que significa que é rápido (você também pode sincronizar pela Internet, se desejar) e pode sincronizar o quanto quiser - limitado apenas pelo espaço em disco disponível e pela largura de banda. O Unison possui uma interface gráfica e uma interface de terminal, o que significa que você pode usá-lo em sua área de trabalho e servidor igualmente. Há um bom guia no wiki do Ubuntu que você pode consultar se você optar por usar o Unison.


1
É exatamente isso que estou procurando, mas há um problema nele. Imgur.com/Apqbq.png outras pessoas também tiveram o mesmo problema em uníssono. Você conhece uma solução?
Gaurav Butola

1
Hmm, eu não vi isso sozinho, mas encontrei o seguinte bug do Debian no qual você pode ficar de olho: bugs.debian.org/cgi-bin/bugreport.cgi?bug=252336 - parece um problema com o programa está sendo interrompido. Tente remover o arquivo mencionado e tente novamente. Se for persistente, você poderá ter mais sorte com a versão da linha de comando (essa é a que eu uso). Desculpe, não posso ajudar mais.
Iain Lane

Obrigado pela ajuda. Era exatamente isso que eu queria. É realmente uma ótima ferramenta. Estou sincronizando meus dados através do SSH usando uníssono.
Gaurav Butola

7

A melhor ferramenta para isso é a ferramenta de linha de comando "Rsync". Se você precisar de uma GUI, tente o Unison ou o LuckyBackup, baseados no conceito de Rsync. Unison e LuckyBackup estão nos repositórios.

Um exemplo de rsync pode ser:

rsync -vxtr / home / scaine / Fotos / / home / Outros usuários / Fotos /

... que sincronizaria meu diretório de imagens com o diretório de imagens de outros usuários. As opções especificadas verificarão todas as cópias, preservarão os carimbos de data / hora durante a cópia e atravessarão os subdiretórios onde forem encontrados. Faça "man rsync" para mais opções.

Quanto à conexão de seus PCs - coloque-os em um switch / hub ou use o cabo crossover e compartilhe os diretórios via samba.

EDIT: Alguns bons pontos a serem destacados se o objetivo é "espelhar" os dois PCs. Este comando apenas "adicionará" arquivos da origem ao destino. Se você precisar excluir, também precisará da opção -delete.

Na investigação, parece que o Rsync não lida com o espelhamento particularmente bem. Veja isso para perceber que você provavelmente encontrará arquivos mais antigos substituindo arquivos mais novos durante esta atualização! Pior, mesmo que a opção -update funcione e evite esse comportamento, ele não "atualizará" o antigo com o arquivo mais novo - apenas "ignorará". Dificilmente ideal.

Por fim, para executar a sincronização bidirecional, você precisará executar o mesmo comando, mas inverter a origem / destino. Obviamente, isso é de uso limitado agora, pois seu primeiro comando (supondo que você tenha usado essa opção -dete) terá excluído qualquer arquivo no destino que não existisse na fonte. O Unison lida com a sincronização bidirecional muito bem, a partir da memória.

Se você está tentando seriamente manter várias edições sincronizadas, uma solução do Dropbox é o melhor caminho a seguir. Se você pode dar uma outra olhada no UbuntuOne ou no Dropbox, o link simbólico pode ser uma solução - basta ligar o link da sua pasta de documentos, por exemplo, mantendo imagens e músicas desativadas no One / Dropbox e usando essa solução rsync / unison para grandes coisas?


Eu estaria sincronizando o todo / casa de ambos, seria correto executar? rsync -vxtr / home / user1 / home / user2 faria sincronização bidirecional? Isso preservará a cópia editada mais recente de um documento ou simplesmente ignorará o arquivo, se existir?
Gaurav Butola

Veja minhas edições da pergunta original.
Scaine

1

Algumas alternativas baseadas em GUI, se você não quiser ou gostar de usar o terminal

grsync como o nome implica uma gui básica para rsync.

uníssono uníssono usa mais back-ends alternativos do que grsyncoutros, mas eles fazem a mesma coisa

Você pode instalá-los no Centro de Software ou usando apt-get


0

Resposta simples:

rsync -vzu user@ip.address:/remote/dir/*  /local/dir

A opção -u compara datas e somente é transferida se a data de destino for mais antiga que a data de origem.

-v significa detalhado, -z significa usar compactação.

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.