Sincronizando pastas, configurações, programas, servidor local e banco de dados em duas máquinas debian

2

Estou usando o Debian tanto em um laptop quanto em uma máquina virtual em outro computador.

Eu quero poder sincronizar esses dois sistemas de ambas as maneiras para que eu possa

  • faça algum trabalho na VM, depois vá para o laptop, sincronize e trabalhe mais,
  • volte na VM, sincronize e trabalhe mais ...

Depois de algum googling, parece que a ferramenta que eu preciso é Unison, porque, entre outros, de seu recurso de sincronização de 2 vias.

O que eu estou querendo saber agora é o que / não e como sincronizar entre as duas máquinas.

Eu descobri que há, no meu caso, basicamente 3 pontos principais a considerar (eu posso ter esquecido algo):

  • sincronizando a maioria (todos?) do conteúdo da pasta pessoal, porque de lá eu preciso dos arquivos em que trabalho, dos alias bash, das definições de configuração da maioria dos programas (que eu gostaria de ser o mesmo entre os arquivos). 2 máquinas), meus scripts para casa, etc.
  • sincronizando o conteúdo do servidor apache local e dos bancos de dados mysql que eu executo para testar localmente alguns sites que eu construo (para poder testar localmente em cada máquina separadamente / independentemente)
  • sincronizando os programas instalados através desses sistemas.

Primeiro, em relação à pasta pessoal, achei que simplesmente sincronizar toda a pasta inicial seria uma boa ideia. Mas olhando mais de perto, parece que alguns arquivos / diretórios ocultos na VM não estão presentes, portanto, necessários no laptop (por exemplo, .vboxclient-clipboard.pid, .vboxclient-display.pid ...) e vice-versa .

Eu também estava me perguntando sobre alguns arquivos ocultos que parecem ser específicos para cada máquina (.cache, .dbus, .gconf)

Portanto, fiquei me perguntando se havia regras gerais (excluir algumas extensões de arquivo específicas ou arquivos / pastas conhecidos) que eu poderia aplicar para garantir que não copiasse arquivos específicos de sistema único e realmente ficasse no que eu preciso e o que é comum às duas máquinas (meus dados e arquivos de configuração, como a lista personalizada de servidores para o filezilla).

Então, com relação à sincronização do servidor local e do banco de dados mysql, achei que

  • Eu poderia sincronizar a pasta / var / www / entre as máquinas com o Unison também (embora não seja uma boa ideia)
  • Eu precisaria escrever um script para despejar, comparar e, se necessário, substituir os bancos de dados mysql toda vez (soa realmente ineficiente)

Finalmente, em relação aos programas, parece que eu teria que instalar manualmente aqueles que foram instalados em um, mas não no outro (mas isso não deve ser um problema, pois eu só preciso fazer isso ao configurar as máquinas e raramente instalar novos programas depois disso.

Além de tudo isso, estou pensando em reinstalar o debian em cada uma dessas 2 máquinas, então também estava me perguntando se durante a instalação do Debian, seria importante escolher, em cada máquina, configurações diferentes relacionadas a:

  • criptografia de disco: basicamente, eu gostaria de criptografar o disco usando o LVM no laptop, mas não precisarei disso na VM,
  • hostname: não é crítico como eu posso usar o mesmo nome de host em ambas as máquinas, mas eu queria saber se eu poderia ter 2 nomes diferentes (por exemplo, debianlaptop e debianvm)
  • senhas de usuário: eu usaria os mesmos nomes de usuário em ambas as máquinas, mas senhas diferentes (também para root) seriam boas
  • seleção de software: Eu definitivamente instalaria as duas máquinas: "Ambiente de desktop Debian" (com o xfce como gerenciador de dektop definido no início da instalação), "servidor web", "utilitários de sistema padrão", mas estou querendo saber se é realmente necessário instalar o "Laptop" na VM e se isso afeta a sincronização.

Por tudo isso, minha principal preocupação é poder fazer as melhores escolhas para que

  • Eu posso sincronizar entre os dois da maneira mais automática, com menos intervenção manual possível (basicamente apenas executando uníssono na máquina que estou começando a trabalhar e, eventualmente, cuidando da instalação de um programa e sincronização de banco de dados)
  • Eu sincronizo apenas o que é necessário, evitando arquivos / pastas / opções específicos do sistema ou que possam substituir configurações específicas do sistema, levando a consequências indesejadas ...
por Iam Zesh 07.11.2013 / 09:13

1 resposta

0

Em relação à sincronização do seu diretório pessoal com o Unison e a exclusão de determinados diretórios do sistema, há duas opções. A primeira é listar explicitamente tudo o que você deseja sincronizar e deixar de fora quaisquer diretórios específicos do sistema:

# unison-profile.prf
root = /home/user
root = ssh://user@VM//home/user
path = Documents
path = .bashrc
.
.
.

A outra opção seria sincronizar tudo e listar explicitamente os caminhos que você deseja ignorar:

# unison-profile.prf
root = /home/user
root = ssh://user@VM//home/user
path = Name {.*,*}
ignore = Path .cache
ignore = Path .dbus
.
.
.

Note que precisamos de path = Name {.*,*} em vez de apenas path = Name * para sincronizar todos os arquivos e diretórios com nomes que começam com um ponto.

    
por 23.04.2015 / 18:15