Introdução

Se você executar um site crítico, é recomendável espelhar seus arquivos em um servidor secundário. No caso do seu servidor principal ter um problema de rede ou hardware, ter arquivos espelhados fornece a flexibilidade para alternar imediatamente de um servidor para outro.

Para sincronizar seus arquivos do servidor A (principal) para o servidor B (backup), siga estas etapas.

Instalar o rsync

Instale o rsync no servidor A e no servidor B.

apt-get install rsync

Gerar uma chave SSH no servidor B

Execute o seguinte comando no servidor B para gerar uma chave SSH.

ssh-keygen

Pressione enter para pular todas as entradas.

Copie o conteúdo gerado em /root/.ssh/id_rsa.pub.

Inserir a chave pública SSH no servidor A

Vá para o servidor A, insira o conteúdo copiado em /root/.ssh/authorized_keys.

Se este diretório ou arquivo não existir, crie-o. Agora o servidor B pode efetuar login no servidor A usando o SSH.

Iniciar sincronização

Volte para o servidor B e inicie o rsync pela primeira vez. Revise e execute o comando abaixo. Você precisará adicionar o caminho para o seu site em ambos os servidores e o endereço IP do servidor A.

rsync -avrt --delete --rsh='ssh -p 22' [email protected]_A_IP_ADDRESS:/path/to/your/website/in/server/a/ /backup/path/in/server/b/

Digite yesse você foi solicitado a salvar as informações de autenticação. Se você configurou o ssh para escutar em uma porta personalizada, mude o 22 para sua própria porta. Aguarde até que todos os arquivos tenham sido sincronizados.

Configuração do cronjob

Configure um cronjob para sincronizar seus arquivos automaticamente. Este exemplo sincroniza a cada 3 minutos. Editar /etc/crontab.

Revise a linha a seguir e anexe-a no crontabarquivo. Você precisará atualizá-lo como fez anteriormente.

*/3 * * * * root rsync -avrt --delete --rsh='ssh -p 22' [email protected]RVER_A_IP_ADDRESS:/path/to/your/website/in/server/a/ /backup/path/in/server/b/ >/dev/null 2>&1