Sincronizando servidores com Rsync e OpenSSH com autenticacao automatica

  • Post author:
  • Post category:Sem categoria

Sincronizando servidores com RSYNC.

Neste tutorial estaremos mostrando um exemplo de como usar o Rsync e o OpenSSH como ferramenta para sincronia de servidores.
A plataforma que estaremos usando como exemplo ? a Gnu/Linux e a distribui??o ? a Debian 3.0 R2.
O conte?do a ser sincronizado ser? a pasta p?blica do servidor Apache remoto.

Sincronizando servidores com RSYNC.

Neste tutorial estaremos mostrando um exemplo de como usar o Rsync e o OpenSSH como ferramenta para sincronia de servidores.
A plataforma que estaremos usando como exemplo ? a Gnu/Linux e a distribui??o ? a Debian 3.0 R2.
O conte?do a ser sincronizado ser? a pasta p?blica do servidor Apache remoto.

1?) PASSO
Primeiramente iremos configurar o RSYNC e o servidor OpenSSH em nosso servidor, para isso verifique a presen?a dos pacotes com o comando:

#dpkg -l rsync ssh

caso a sa?da seja:
ii ssh
ii rsync , isto significa que os pacotes est?o atualmente instalados em seu servidor, do contr?rio os pacotes poder?o ser instalador com o comando apt-get usando os mirror:

deb http://security.debian.org/ stable/updates main

depois use:

apt-get update ; apt-get install rsync ssh

2?) PASSO

O segundo passo consiste em criar as chaves RSA de 1024 bits que ir?o implementar o sistema de seguran?a em nosso sistema sem a necessidade de aut?ntica??o manual.

Para isso usaremos o comando ssh-keygen para gerar a chave p?blica RSA:

# ssh-keygen -t rsa -b 1024

* Ser? importante lembrar que para gerarmos uma chave que aut?ntique autom?ticamente devemos chamar o comando anterior e teclar enter em todas as quest?es feitas pelo Ssh-keygen n?o preenchendo nenhum campo.

Feito isso ser? criado um arquivos dentro da pasta .ssh do usu?rio com o nome id_rsa.pub.

Copie est? chave para o outro servidor; uma dica seria o comando scp:

#scp ~admin/.ssh/id_rsa.pub [email protected]:~admin/.ssh/

depois copie o conte?do da chave RSA para dentro do arquivo authorized_key remoto; uma dica seria:

#ssh [email protected] ‘cat ~admin/.ssh/id_rsa.pub >> ~admin/.ssh/authorized_key’

Reinicie o servidor remoto caso n?o funcionar na primeira vez.

3?) PASSO

O terceiro passo consiste em verificar as permiss?es para que o usu?rio admin consiga aut?nticar e executar as tarefas de c?pia em nosso servidor.

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

Ex:

#adduser admin, depois verifique as entradas de permissionamento em seu servidor para os volumes que ser?o sincronizados.

No exemplo a seguir, sincronizaremos 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 [email protected]:/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/admin/

4?) PASSO

Criaremos agora um rotina no Crontab que todos os dias as 0:00 horas o script ser? executado e assim ir? sincronizar nosso conte?do remoto do servidor Apache.

para isso:

# crontab -e

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

Salve a rotina e saia do aplicativo.

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 que escrevi em:

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

a instala??o se d? atrav?s do script install.sh e a documenta??o poder? ser verificada no documento INSTALL.

Qualquer d?vida ou sugest?o entre em contato.

[email protected]

Obrigado.

?ltima Atualiza??o: ( 28 09 2004 )