terça-feira, 10 de março de 2009

Rsync entre servidores Linux + Crontab

Imagine o ambiente entre dois servidores linux:

Servidor 1 onde roda sua aplicação ou arquivos preciosos:)

Servidor 2 onde você deseja efetuar o back-up.

1º Passo:
Temos que habilitar a relação de confiança ssh entre os dois servidores (Secure SHell).

Fazendo a relação de confiança :













2º Passo:
Devemos criar uma chave criptografada entre os dois servidores, para efetuar a autenticação do ssh sem solicitar a senha.
- execute os seguintes passos:
  • No console do Servidor 1 digite:
root@svn-projudi:~# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
40:2b:17:59:17:26:ae:ee:aa:b7:66:cb:2c:ed:17:a8 root@svn-projudi
The key's randomart image is:
+--[ DSA 1024]----+
| ooo +. |
| ..+ + |
| . + . |
| o o |
| .. S |
| ... |
| o .. |
| Eo=.. |
| .BB=. |
+-----------------+
  • Observe que gerou duas chaves:
root@svn-projudi:~# cd /root/.ssh/
root@svn-projudi:~/.ssh# ls
id_dsa id_dsa.pub
root@svn-projudi:~/.ssh#
  • Agora você vai copiar a chave publica para o Servidor 2 com a seguinte linha:
root@svn-projudi:~/.ssh# scp id_dsa.pub username@servidor2:.ssh/authorized_keys
OBS: se não existir a pasta authorized_keys crie ela, mkdir authorized_keys.
  • Em seguida teremos que logar no Servidor 2 e atribuir algumas permissões para os seguintes arquivos:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • Para ver o conteudo do arquivo criptografado digite.
root@svn-projudi:~/.ssh# cat ~/.ssh/id_dsa.pub

Pronto, agora iremos criar o scrip shell para usar o Rsync
Crie o um arquivo com a seguinte sintaxe vim script_rsync.
Adicione o seguinte conteúdo ao arquivo.
#!/bin/sh

######################################################################
#Descreva o que o script vai fazer para documentar...
######################################################################

TREINAMENTO="ip do seu servir origem"
echo "Iniciando copia dos arquivos" > /var/log/copiaTemporal.log
echo "##########Inicio##################"
rsync -Cravzp --progress --partial origem_dos_arquivos_ root@$servidor2:/ >> /var/log/copiaTemporal.log

echo "Finalizando copia dos arquivos" >> /var/log/copiaTemporal.log
echo "############Fim##################"

Pronto agora o seu script esta pronto. Agora vamos agendar a execução do script no servidor 1

Para maiores informações sobre o CRONTAB, digite crontab -man.

Após configurar o crontab, restart o serviço:
[root@projudi-homologacao /]# service crond restart
Pronto agora seu rsync está ativado e funcionando.
Para ter certeza verifique se o log em /var/log/copiaTemporal.log esta sendo gerado.