Como posso sincronizar minha pasta pessoal pela rede e pela internet?

8

Eu uso meu laptop com o Ubuntu-desktop para fazer todo o meu trabalho, mas também tenho um desktop de baixo custo no meu escritório, apenas sentado lá. Decidi instalar o servidor Ubuntu nele e utilizá-lo para espelhar toda a minha pasta pessoal do laptop, para facilitar as coisas quando decido formatar o disco rígido do meu laptop.

Sempre que estou trabalhando, as duas máquinas estão conectadas a uma rede e se comunicam facilmente (e de alta velocidade) via ssh. Quando não estou no trabalho, a área de trabalho ainda é acessível via ssh. O ideal é que a sincronização ocorra automaticamente em segundo plano, sempre que eu mudar alguma coisa. Só precisa ser de um jeito: as mudanças que eu faço no laptop precisam ser sincronizadas com o servidor, mas o inverso não é necessário.

Sei que há software para isso, minha pergunta é: Que software posso usar para atingir os objetivos acima e também aproveitar ao máximo as velocidades da rede local quando estou no trabalho? Como às vezes eu lido com arquivos grandes, o processo de sincronização precisa perceber que os dois computadores estão compartilhando uma rede local e aproveitam isso (em vez de sempre sincronizar pela Internet).

Só para deixar claro, a sincronização pela rede é mais importante para mim do que a sincronização pela Internet. Idealmente, o software verificaria se o primeiro estava disponível e, se não, tentaria o segundo; mas se isso não for possível, o primeiro caso é minha prioridade.

Espero que isso não seja muito longo. Agradecemos antecipadamente.

    
por Malabarba 15.10.2010 / 17:34

6 respostas

11

Se você puder se conectar apenas ao seu servidor de escritório via SSH, então seu melhor A escolha é usar o rsync : ele pode usar o SSH como um protocolo de transporte e usa um algoritmo inteligente para acelerar o transferência de arquivos grandes, enviando apenas os blocos alterados.

Como você só precisa de sincronização unidirecional, basta configurar sem senha Autenticação SSH do seu laptop para o servidor do escritório, e então você pode começar com um comando tão simples como:

rsync -e ssh -a $HOME/ myuser@officeserv:

adicionando as opções --include e --exclude para refinar a lista de arquivos / diretório que você deseja sincronizar. Por exemplo, transferir as configurações do programa ("arquivos de ponto") pode ser arriscado se os dois computadores não executam o mesmo sistema operacional (mesma versão). Minha sugestão é começar excluindo todos os "arquivos de ponto" (então, use --exclude="$HOME/.[a-z]*" ) e, em seguida, adicione seletivamente diretórios de configuração de programas que podem ser compartilhados com tem que ser visto em um programa por programa). Além disso, web cache do navegador e $HOME/.cache sempre podem ser excluídos. Veja o Seção "FILTER REGULES" na página rsync man para obter informações detalhadas discussão da sintaxe das regras de inclusão / exclusão.

No entanto, rsync não tem um modo de "operações contínuas", então você terá que executá-lo periodicamente a partir do seu crontab .

    
por Riccardo Murri 15.10.2010 / 17:46
3

Eu sugiro usar o rdiff-backup sobre o rsync. É praticamente apenas rsync ++.

ao contrário do rsync, que é apenas um espelho de 1-1 que transfere diffs, o rsync tem um mecanismo de histórico. Então, se você errou e excluiu algo importante, pode voltar a uma semana atrás e recuperá-la.

No ubuntu "server" você só precisa ter o ssh rodando para o apt-get install rdiff-backup.

no cliente. Eu poderia executar isso manualmente .. ou através de um crontab.

#!/bin/bash

  #backup.sh

  rdiff-backup -v5 --exclude path-to-annoyingfile  /home/user/ hostname::/media/data/snapshots/laptop 
  ## this will cleanup any backups older then 2weeks.  Adjust this as needed.
  rdiff-backup --remove-older-than  2W --force  hostname::/media/data/snapshots/laptop


  #!/bin/bash
  ##Restore.
  rdiff-backup -v5 --restore-as-of now --force user@hostname::/media/data/snapshots/laptop  /home/user

Se você abrir sua porta 22 para a internet, você deve ser capaz de executar o mesmo script de qualquer maneira. Basta ter seu nome de host resolvido localmente para o seu IP local.

ie. backupSrv.penguins.org resolveria para o IP externo de. 2.3.4.5 mas dentro da sua lan: para 192.168.1.253

    
por csgeek 15.10.2010 / 18:39
2

Não há uma solução completa e pré-empacotada para o seu problema que eu saiba. Você provavelmente tem que escrever um pequeno roteiro para isso.

A sincronização em si pode ser feita por rsync , como já explicado por Riccardo Murri. O Rsync transfere apenas as partes alteradas dos arquivos, por isso é perfeito para esta tarefa.

Você pode usar o NetworkManagerDispatcher para executar scripts na conexão / desconexão de uma interface de rede. Assim, você pode escrever um script que verifique se você está na rede correta e, em seguida, chama o rsync. Dessa forma, seus dados serão sincronizados automaticamente quando você se conectar à rede da sua empresa.

Para sincronizar seus dados periodicamente, você pode usar o cron, como já mencionado.

Você também deve considerar a segurança ao usar o rsync via ssh. Para sincronizar sem a intervenção do usuário, você precisará de um keyfile sem senha. Qualquer pessoa que tenha esse arquivo-chave pode obter acesso ao servidor ao qual pertence. Eu recomendaria strongmente criptografar sua pasta pessoal para proteger os dados no notebook e no servidor.

    
por Mad Scientist 15.10.2010 / 18:06
1

DropBox | DropBox @ SuperUser link

O DropBox deve ser bom no seu caso, funciona em Linux, mac, windows, fácil configuração e gerenciamento.

Baixe o DropBox

link

link

Faça uma leitura - ele oferece suporte à sincronização via links simbólicos e se houver certos documentos, gráficos, planilhas que você precisa sincronizar - você ainda pode manter uma cópia deles na caixa de depósito ou salvá-los permanentemente no local da caixa de depósito para salvar o incômodo .

    
por rihatum 15.10.2010 / 18:12
1

Experimente o Sparkleshare: link

Existe um cliente no repositório do Ubuntu e ele tem instruções sobre como configurar um servidor em seu site.

    
por user60876 26.05.2012 / 11:25
0

A melhor solução para 2015 deve ser o Seafile: link

Sparkleshare Os desenvolvedores dizem que a ferramenta deles é boa para muitos arquivos pequenos e especialmente texto, mas não tão bons para arquivos maiores e binários ..

E em termos de desempenho, supera tanto o Sparkleshare quanto o Owncloud.

Além disso, o OwnCloud tem menos recursos - então uma instância pode ser executada em uma banana ou framboesa sem problemas como um computador funcionando 24 horas por dia, 7 dias por semana. (Eu recomendaria um Banana Pi, por causa da rede Gigabit e da interface SATA, foi uma boa escolha para um servidor de arquivos, pelo menos para mim.)

Eu sincronizo minhas pastas iniciais com três computadores. Eu excluo dotfiles, eles são tratados em um repositório git e um pouco de lógica porque, como Ricardo mencionou, há alguns problemas em compartilhar dotfiles e outras configurações em diferentes computadores, mesmo quando é o mesmo sistema operacional e release. Pense no arquivo monitores.xml, por exemplo, ou em um layout diferente para um IDE em seu laptop e em sua área de trabalho multiscreen - ou em um programa aberto em ambos os computadores.

Aditivo à sincronização, faço backup desses dados - via borgbackup. É um novo programa de backup muito bom, que desduplica, é muito rápido após o backup inicial e tem muitos recursos que faltam em muitas ferramentas.

É a configuração perfeita para mim.

    
por mpathy 15.12.2015 / 20:18

Tags