[Guilherme Cunha] sincronizar_servidores_linux_utilizando_rsync_internet_scp_ssh-keygen_rsa_dsa_remoto

Sincronizando servidores utilizando o RSYNC


Primeiramente vamos ver se temos instalado na máquina o rsync e o ssh.

# dpkg -l rsync ssh

Se a saída for:

ii ssh
ii rsync

É porque os pacotes estão instalados.
Caso contrário faça:

apt-get update ; apt-get install rsync ssh 

O segundo passo é gerar as chaves RSA de 1024 bits, para não precisar de autenticação com senha.

# ssh-keygen -t rsa -b 1024 

Feito isto, verifique a pasta .ssh no diretório do usuário e busque o arquivo id_rsa.pub .

Copie a chave para o servidor remoto:

# scp ~USUARIO/.ssh/id_rsa.pub USUARIO@servidor-remoto:~USUARIO/.ssh/ 

Depois copie o conteúdo da chave RSA para dentro do arquivo authorized_key remoto;

ssh USUARIO@servidor-remoto 'cat ~USUARIO/.ssh/id_rsa.pub >> ~USUARIO/.ssh/authorized_key' 

Reinicie o servidor remoto caso não funcione na primeira vez.

Primeiramente sugiro que seja criado um usuário e que este usuário seja adicionado nos grupos dos quais os volumes serão copiados.

adduser USUARIO

Depois verifique as entradas de permissionamento em seu servidor para os volumes que serão sincronizados.

Um script para sincronizar todas as pastas públicas de um servidor Apache remoto para nosso servidor em copiando os arquivos para a pasta local /WWW-BAK, para isso escreveremos um script que rodará na máquina local com o seguinte conteúdo:

#!/bin/sh
#
DATA=``date +%d-%m-%Y``
INIT_TIME=``date +%H:%M``
END_TIME=``date +%H:%M``

echo "Iniciando backup do dia $DATA em: $INIT_TIME" > REPORT-$DATA.log
rsync -Cravz --progress --partial --delete-excluded USUARIO@servidor-remoto:/var/www /WWW-BAK
echo "Finalizando o backup em: $END_TIME" >> REPORT-$DATA.log

Salve o script com o nome sincronia-apache.sh na pasta /root/USUARIO/

Crie uma automatização para o script!

# crontab -e

0 0 * * * sh /root/USUARIO/sincronia-apache.sh

Com isso você terá um sistema simples de sincronia segura de conteúdo entre servidores usando a ferramenta RSYNC e OpenSSH.

Caso queira um script mais robusto que crie logs diários e ainda notifica via e-mail sobre a rotina de sincronia baixe o script:

http://fsbox.org/repositorio/scripts/shell/sync-server.tar.gz

Créditos ao DICAS-L.com.br