
Tenho três computadores em casa e gostaria de /home/
sincronizar a árvore de pastas entre os três.
Quaisquer arquivos/pastas (exceto aqueles ocultos) que forem modificados/adicionados/removidos em um dos três computadores serão atualizados nos outros dois.
Érsync
suficiente para fazer isso? e como?
Responder1
Aqui está uma lista de coisas que poderiam resolver esse problema, cada uma equilibrando as compensações que você precisa fazer de maneira diferente, então você terá que fazer suas próprias escolhas e experimentar por si mesmo:
Uníssono- como mencionado por outros, é executado manualmente, mas é muito rápido, confiável e eficaz. Requer que ambas as máquinas sincronizadas estejam ligadas ao mesmo tempo. Possui uma interface de usuário agradável para permitir que você lide com conflitos quase inevitáveis e rastreie e propague exclusões corretamente. O aplicativo/pacote gráfico é chamado unison-gtk.
OwnCloud- Armazenamento em nuvem executado em seu próprio servidor. Você precisará de uma máquina para deixar ligada. Requer uma quantidade razoável de configuração. Executa um servidor web Apache 2 completo e um banco de dados SqlLite ou MySQL no servidor. Funciona de forma semelhante ao Dropbox com um cliente de desktop, mas o servidor está sob seu controle. editar: OwnCloud passou recentemente por algumas mudanças na forma como o projeto é executado e agora tem um novo código-fonte totalmente aberto (ou seja, nenhuma edição 'empresarial' de código fechado) sob o disfarce dePróxima Nuvem, (Veja issoentrevista no youtubecom o desenvolvedor OwnCloud original para mais detalhes).
SparkleShare- usa git para manter os arquivos sincronizados. De acordo com a página inicial: bom para muitos arquivos menores, não é bom para muitos arquivos grandes, como músicas ou coleções de fotos.
Arquivo do mar- Fornece um componente de servidor que você pode instalar em uma máquina local. Seafile usa um modelo de dadossemelhante ao gitpara rastrear alterações. Fornece clientes de sincronização para desktops, tablets e smartphones. Uma postagem no blog descrevendo a configuração pode ser encontrada emhttp://openswitch.org/blog/2013/07/18/installing-and-configurando-seafile-on-ubuntu-12-dot-04/
Ossincronizado- "...ferramenta de sincronização bidirecional de arquivos escrita em bash e baseada em rsync. Funciona em diretórios locais e/ou remotos via túneis ssh. É direcionada principalmente para ser lançada como tarefa cron" (texto do site)
PowerFolder- projeto GPL v2 baseado em java. O site principal envia ofertas comerciais, por isso não está claro como usar o arquivo .jar fornecido.
Sincronizar novamente- rápido e eficaz e existe há décadas, porém não mantém um histórico, então você tem que escolher uma direção para decidir se um arquivo é novo ou excluído. Ferramentas gráficas estão disponíveis, comogwRsync.
Lsyncd- monitora pastas/arquivos para acionar a replicação rsync
dvcs-autosync- escrito em python, usa git para armazenar e compartilhar alterações entre máquinas e XMPP para comunicar alterações.
anexo git- ferramenta de linha de comando para desviar arquivos, baseada em git. Há um passo a passo ilustrativo aqui:http://git-annex.branchable.com/walkthrough/
Tonido- freeware. Fornece um aplicativo de desktop que compartilhará arquivos com outros dispositivos. Também fornece ofertas comerciais de nuvem e o computador plug-in TonidoPlug.
Sincronização BitTorrent(freeware) - sincronização de arquivos ponto a ponto baseada em BitTorrent. Não sei muito sobre isso porque não irei usá-lo por não ser de código aberto e por não confiar nele para manter meus dados dentro da minha LAN, fique à vontade para editar esta resposta com melhores informações/experiências reais.
Sincronizar- Desenvolvido como uma alternativa de código aberto ao BitTorrent Sync. Atualmente faltam alguns dos recursos avançados do BitTorrent Sync, como pares não confiáveis. Está em desenvolvimento ativo.
Serviços hospedados comerciais, como dropbox, ubuntu one, google drive, apple iCloud, são todos rápidos, baratos e convenientes, no entanto, todos exigem a confiança de todos os seus dados em uma empresa e precisam de uma conexão de Internet razoavelmente rápida.
Git/subversão- Use um sistema de controle de origem diretamente. Completamente manual e pode ser uma abordagem um pouco complexa, mas popular entre alguns usuários familiarizados com esses sistemas por usá-los como ferramentas de programação.
CloudFS- sincronizar todo um sistema de arquivos, baseado em tecnologia de cluster
Montagem NFS - basicamente sua casa fica em uma máquina e você a acessa pela rede, o que não é bom para laptops que você leva com você. Mais informações:http://www.linuxjournal.com/article/4880
Fatores a serem considerados ao tomar sua decisão:
Servidor central - algumas soluções exigem que uma máquina esteja ligada o tempo todo (ou pelo menos quando você precisa sincronizar) para que outras máquinas possam sincronizar. Esta pode ser uma das suas máquinas existentes ou uma máquina separada, como um NAS. Cuidado com o aumento das contas de energia.
Automático / Manual / Programado - A melhor maneira de evitar ter que resolver conflitos onde algo é alterado em mais de uma máquina é ter um programa em cada máquina que observe as alterações e sincronize imediatamente, desta forma você reduz a oportunidade de acabar com múltiplas versões. Com processos manuais você sempre deve se lembrar de executar a sincronização.
Acesso remoto - você deseja sincronizar fora de sua LAN (também conhecida como casa), pense nas implicações de segurança disso.
Segurança – seus dados saem da sua rede criptografados ou não, quão segura é a transferência entre máquinas. E se alguém capturar seus dados em movimento e mais tarde a criptografia apresentar falhas? Quem controla o servidor que mantém seus dados, os dados são criptografados, você pode confiar em terceiros? Você precisa fazer furos no seu roteador para obter acesso remoto. Por quanto tempo os arquivos "excluídos" e os metadados relacionados permanecem nos dispositivos sincronizados e no servidor central. Você está sincronizando entre armazenamento criptografado e não criptografado?
Movendo pastas grandes - todas as soluções que tentei apresentam um problema: quando você move/renomeia um arquivo ou pasta, a sincronização não entende isso e carrega tudo novamente como novo e, em seguida, exclui a cópia antiga.
Capacidade do disco
Backups - sincronização não é backup. Exclua um arquivo importante por engano e muitas das opções acima excluirão alegremente todas as suas outras cópias. Eu recomendo a leituraArtigo de Mat Honan sobre ser hackeadopara ter uma boa ideia do que pode acontecer se você colocar todos os seus ovos digitais em uma cesta digital, por assim dizer.
Eu recomendo não sincronizar a pasta pessoal inteira, mas sim escolher pastas específicas para sincronizar, como Documents/
, Pictures/
etc. Isso evitará a dor de ser forçado a lidar com problemas de velocidade/desempenho/espaço em disco de sincronizar tudo automaticamente. Também evita a necessidade de manter listas de exclusão.
À medida que continuo tentando encontrar algo que funcione para mim pessoalmente, tentarei manter esta resposta atualizada com informações úteis. Agregei as informações de todas as outras respostas em uma resposta completa.
Referências:
- LinuxFormat - fevereiro de 2014 LXF180 p31, "Resumo de armazenamento hospedado"
hackeando/tudo/
Responder2
Uníssonopode ser um bom candidato:
Unison é uma ferramenta de sincronização de arquivos para Unix e Windows.Ele permite que duas réplicas de uma coleção de arquivos e diretórios sejam armazenadas em hosts diferentes (ou discos diferentes no mesmo host), modificadas separadamente e, em seguida, atualizadas através da propagação das alterações em cada réplica para a outra.
Ele já faz sincronizações bidirecionais. Veja a atualização abaixo.
Aprendi que há muito poucas coisas que o rsync não pode fazer e provavelmente pode fornecer uma solução igual ou melhor, mas você terá que esperar que um especialista em rsync apareça para essa solução.
Atualizar:Sim, o Unison pode sincronizar mais de 2 máquinas. Do seumanual do usuário:
Usando Unison para sincronizar mais de duas máquinas
O Unison foi projetado para sincronizar pares de réplicas. No entanto, é possível usá-lo para manter grupos maiores de máquinas sincronizadas, realizando múltiplas sincronizações entre pares.Se você precisar fazer isso, a maneira mais confiável de configurar as coisas é organizar as máquinas em uma “topologia em estrela”, com uma máquina designada como “hub” e o restante como “raios”, e com cada máquina de raios sincronizando somente com o hub. A grande vantagem da topologia em estrela é que ela elimina a possibilidade de confundir “conflitos espúrios” decorrentes do fato de que um arquivo separado é mantido pelo Unison para cada par de hosts que ele sincroniza.
Responder3
Que tal colocar seus arquivos em um sistema de controle de versão como SubVersion ou git?
Eu não versiono todo o meu diretório inicial, mas apenas alguns subdiretórios com algumas coisas importantes. Mas estou pensando em converter para git pois parece ser melhor para esse tipo de trabalho. (uma pesquisa rápida irá direcioná-lo na direção certa).
Boa sorte
Atualizar: Um bom efeito colateral do git é que é fácil ter arquivos específicos do computador, já que você só precisa ter uma ramificação para esse computador (e no git você obtém isso por padrão). Portanto, você não precisa ter exatamente os mesmos arquivos em todos os computadores, eles só precisam ser semelhantes e ter um branch "principal" comum com o que você deseja em todos os computadores diferentes.
Responder4
Eu acho que você pode conseguir o que deseja melhor montando o NFS em uma pasta pessoal comum. Confira este artigohttp://www.linuxjournal.com/article/4880