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

10

Eu tenho um desktop e um laptop com quase os mesmos arquivos em seu diretório pessoal. Às vezes eu faço alterações em ~/Music , ~/Documents , etc. Mas essas mudanças obviamente não afetam a outra máquina.

Por isso, quero ter uma solução para sincronizar todos os dados nas pastas iniciais do meu laptop e desktop. Eu posso conectá-los com cabo cruzado de vez em quando.

Eu 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 ambos estão em uma rede doméstica).

    
por Gaurav Butola 01.12.2010 / 08:27

4 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 nenhuma delas é particularmente adequada para isso por dois motivos:

  • Os dois sincronizam com a Internet, o que significa que grandes coleções de arquivos demoram muito tempo para baixar e carregar
  • 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 desembolsar muito dinheiro

Unison , que é o que eu uso para replicação local, não tem nenhuma dessas limitações (inerentemente) . Você pode sincronizar através de 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 disponível em disco e largura de banda. O Unison possui uma GUI e uma interface de terminal, o que significa que você pode usá-lo na sua área de trabalho e no servidor da mesma forma. Existe um bom guia no wiki do Ubuntu que você pode querer consultar se escolher usar o Unison.

    
por Iain Lane 01.12.2010 / 16:54
7

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

Um exemplo de rsync pode ser:

  

rsync -vxtr / home / scaine / Imagens /   / home / OtherUser / Imagens /

... que sincronizaria meu diretório Pictures com o diretório Pictures de OtherUser. As opções que eu especifiquei verificarão as cópias, preservarão os timestamps / permissões durante a cópia e percorrerão os subdiretórios encontrados. Faça "man rsync" para mais opções.

Quanto a conectar seus PCs juntos - ou colocá-los em um switch / hub ou usar o cabo cruzado, compartilhe os diretórios via samba.

EDITAR: Alguns pontos positivos a serem feitos se o objetivo for "espelhar" os dois PCs. Este comando só irá "adicionar" arquivos da origem ao destino. Se você precisar excluir, então também precisará da opção -delete.

Na investigação, parece que o Rsync não não manipula o espelhamento particularmente bem. Consulte para perceber que você provavelmente irá encontrar arquivos mais antigos sobrescrevendo arquivos mais novos durante esta atualização! Pior, mesmo se você pegar a opção -update para funcionar e evitar esse comportamento, ele não "atualizará" o antigo com o arquivo mais novo - ele simplesmente "pulará". Dificilmente ideal.

Finalmente, para executar a sincronização bidirecional, você precisará executar o mesmo comando, mas inverter a origem / dest. Claro, isso é de uso limitado agora, já que seu primeiro comando (supondo que você usou essa opção -delete) terá deletado qualquer arquivo no destino que não existisse na fonte. O Unison lida muito bem com a sincronização bidirecional, a partir da memória.

Se você está tentando manter várias edições em sincronia, uma solução do Dropbox é o melhor caminho a seguir. Se você pode dar uma olhada no UbuntuOne ou Dropbox, o symlinking pode ser uma solução - apenas criar links simbólicos na sua pasta de documentos, digamos, mantendo Pictures e Music fora do One / Dropbox e usando esta solução rsync / unison para as grandes coisas? >     

por Scaine 01.12.2010 / 09:02
1

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

grsync como o nome implica um guia básico para rsync .

uníssono o uníssono usa mais backends alternativos do que grsync , mas diferente do que eles fazem a mesma coisa

Você pode instalá-los a partir do Centro de Software ou usando apt-get

    
por Allan 01.12.2010 / 09:45
0

Resposta simples:

rsync -vzu [email protected]:/remote/dir/*  /local/dir

A opção -u compara datas e só transfere se a data de destino for mais antiga que a data de origem.

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

    
por Yan King Yin 16.12.2015 / 12:09

Tags