você está aqui: Home  → Arquivo de Mensagens

Sincronizando servidores com RSYNC.

Colaboração: André Jaccon

Data de Publicação: 27 de Dezembro de 2004

Neste tutorial iremos mostrar 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 Gnu/Linux 3.0 R2. O conteúdo a ser sincronizado será a pasta pública de um 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 que contenha o pacote requisitado um exemplo é o:

  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 admin@servidor-remoto:~admin/.ssh/

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

  # ssh admin@servidor-remoto '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 admin@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/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.

  # 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.



 

 

Veja a relação completa dos artigos de André Jaccon

Opinião dos Leitores

Luiz Escobar
05 Abr 2017, 11:53
link quebrado
www.fsbox.org/repositorio/scripts/shell/sync-server.tar.gz
JDórea
29 Ago 2012, 12:00
Olá André, bom dia.

Achei muito interessante teu script. Porém a versão que você disponibilizou para download não está mais disponível. Teria como corrigir o link para download, ou me enviar por email? Grande abraço, e parabéns pela disposição de ajudar a outros que nem conheces.
Ivan
27 Ago 2010, 13:15
Jaccon não consegui fazer o download dos scripts, teria como disponibiliza-lo novamente?
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script