Se você usa vários computadores, como sincroniza tudo? [fechadas]

31

Agora tenho 4 ou 5 computadores e preciso de um sistema melhor para sincronizar tudo. Eu uso muito o git e o github para sincronizar meus arquivos para projetos de programação, mas existem bancos de dados, arquivos .bash_profile, scripts bash, etc. Às vezes, em vez de sincronizar arquivos, eu ssh de um computador para outro. Mas isso está ficando bastante caótico. Alguns dos meus computadores são Ubuntu e outros são OS X.

Alguma sugestão para gerenciar um fluxo de trabalho que abranja vários computadores pessoais?

dan
fonte
1
Talvez eu devesse tentar rede pastas compartilhadas
dan
1
@rwong Tenho a impressão de que @dan está procurando essas "respostas usuais" em primeiro lugar. Considere postar uma resposta que descreva como o uso de rsync e pastas compartilhadas pode ajudá-lo.
Adam Lear
1
Muito cuidado.
greyfade
4
Isso realmente não é específico para programação. Talvez migrar para a SU seria um lugar melhor para isso?
28511 Walter Walter
1
@ FarmBoy - isso dependeria do tipo de banco de dados, pois muitos deles são realmente apenas arquivos também ... Eu ainda vejo isso como um problema de sincronização de arquivos, e não de programação. E acho que haveria muito mais variedade de respostas no SU. Apenas meus 2 centavos.
28411 Walter Walter

Respostas:

15

Eu uso uma combinação de Git para repositórios git e Unison para todo o resto. Tenho vários perfis uníssonos para sincronizar coisas específicas e uma que sincroniza tudo. Eu também tenho um script bash que analisa e sincroniza todas as coisas que o unison sync executa e atualiza todos os meus repositórios git.

O uníssono é a melhor coisa em minha mente quando se trata de sincronizar computadores.

sp0rus
fonte
1
Como você sincroniza os bancos de dados? Isso funciona para alterações DDL e DML?
Eric Wilson
Não estou trabalhando com nada relacionado a SQL / banco de dados no momento, portanto não posso responder a essa pergunta, pois ela não se aplica a mim. Eu perdi essa parte da pergunta original e estava respondendo como sincronizo todas as minhas informações de código e perfil.
Sp0rus
Você tem conflitos de versão ao usar o Unison? Como você os minimiza?
dan
Sempre sincronizo manualmente antes de alterar qualquer coisa, para editar a versão mais atualizada do arquivo. Também tenho um trabalho cron definido para todas as noites para sincronizar os computadores. Não tive problemas com conflitos de versão ao aderir a este sistema. Quando tive que me desviar e um conflito ocorreu, foi algo que pude escolher qual deles queria substituir os outros.
Sp0rus
15

Dropbox

Para sincronizar arquivos, é tão fácil quanto trabalhar neles em uma pasta que o DropBox conhece. O vídeo na página principal faz a maior parte da descrição, motivo pelo qual não comentei os recursos. Simplesmente modifique um arquivo com versão e o DropBox fará o upload automaticamente, para que todas as outras máquinas com o DropBox baixem automaticamente a versão mais recente.

Para coisas como bancos de dados, links simbólicos podem ser o caminho a percorrer. Esse tópico nos fóruns do DropBox fornece uma pequena visão de como alguém pode sincronizar um banco de dados MySQL. Como alternativa, você pode fazer a rota de script "exportar / importar" ou, se estiver usando o MySQL, pode dar uma olhada no Replication e como implementá-lo (esse é um recurso do MySQL que não usa o DropBox).

badgerr
fonte
Não vejo como você usaria o Dropbox para sincronizar bancos de dados.
Eric Wilson
Você pode agendar um despejo / restauração regular de banco de dados para / de um diretório de caixa de depósito.
badgerr
6
@badgerr Considere expandir sua resposta para incluir como o Dropbox pode ser usado nos vários cenários mencionados pelo OP.
Adam Lear
Isso é feio. Prefiro usar um roteirista como o DbMaintain.
Eric Wilson
1
-1 pelo motivo que Anna menciona. Expandir a sua resposta eo voto serão revertidos ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync para favoritos / histórico / configurações do Firefox
talonx
fonte
1
+1 para resposta direta e para o dropbox estar no topo. Independentemente de seus recentes problemas de relações públicas com a comunidade de código aberto, o dropbox é inestimável para mim.
Falmarri
3

Você pode usar o github para todo o seu código, é claro, incluindo arquivos .bash_profile e scripts bash.

O servidor Hudson / Jenkins CI é bom para manter vários ambientes. Usado junto com o DbMaintain, também pode manter seus bancos de dados sincronizados.

Minha equipe usa essa combinação para sincronizar quatro estações de emparelhamento, uma variedade de laptops e ambientes de CI, TEST e QA (com servidores e suas próprias cópias do banco de dados).

Isso envolve máquinas Windows, laptops Mac e servidores Linux, por isso é bastante flexível.

Eric Wilson
fonte
2

Eu mantenho meus arquivos de ponto no git, com ramificações para configurações específicas da máquina. Ele permite que eu configure rapidamente uma nova máquina e eu posso compartilhar scripts e mantê-los na versão mais recente.

Daenyth
fonte
1

Talvez você precise dar um passo atrás e se perguntar por que você precisa de tantos computadores. É como alguém perguntando como manter todas as suas coisas iguais nos 5 carros que ele possui.

Eu sugiro que você se pergunte o que cada máquina faz que a sua máquina principal não faz, e apenas faça isso.

Você já considerou um bom laptop?

Se tudo estiver em sua casa, você poderá configurar um servidor e manter todas as coisas lá. Então você só tem uma máquina com dados para fazer backup.

Se forem máquinas remotas, considere obter um vps Linux e armazene seu material remoto lá. Não use serviços on-line gratuitos, como github, dropbox, etc., pois eles podem desaparecer na hora errada.

Não use a AWS para armazenar suas coisas. a US $ 0,1 / mês / GB, é US $ 100 / mês / TB ou US $ 1200 / ano / TB. Por esse dinheiro, você pode comprar cerca de 15 discos rígidos de 1 TB da Western Digital.

Se você administra uma empresa e ganha dinheiro com ela, use o melhor serviço possível, mas, para ser sincero, é difícil vencer os discos rígidos para movimentar muitos dados. Até as unidades micro USB de 32 GB são do tamanho de uma unha e você pode mover muitos dados ...

Existe a nuvem, a nuvem privada. Talvez deva haver a nuvem pessoal ...

Christopher Mahan
fonte
Obrigado pelas dicas. Eu tenho 5 computadores, mas uso apenas 3 deles e preciso dos três. 1 servidor Ubuntu em casa, 1 laptop Thinkpad Ubuntu (o cavalo de batalha) e 1 Macbook Pro para desenvolvimento iOS
dan
0

O Git, migrado do Subversion, por sua vez, migrou do CVS. fgit (disclaimer: por mim) para pull push, statuse gc.

l0b0
fonte
0

Você já pensou em criar algum tipo de infraestrutura de nuvem lá? Parece a única maneira de abstrair de qual estação de trabalho possui o serviço / arquivo / coisa.

Aqui está um link para a nuvem Ubuntu .

guiman
fonte
0

Eu uso o Wuala agora como um substituto para o Dropbox. Um problema é a falta de monitoramento de pastas no Linux. Basicamente, verifica todos os arquivos a cada minuto. A próxima versão deve corrigir isso de alguma forma, como eles dizem.

A sincronização em tempo real no Linux é problemática se você tiver dezenas de milhares de pastas (por exemplo, repositórios git) devido à maneira como o inotify é implementado. Para cada pasta, é necessário haver um "monitor" - veja, por exemplo, https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ert
fonte
Agora o Wuala está morto: en.wikipedia.org/wiki/Wuala
Gwyneth Llewelyn