Home » » Rsync sem senha

Rsync sem senha


Pode parecer estranho o t�tulo do tutorial. E � estranho mesmo. Mas pior seria o verdadeiro t�tulo como "rsync utilizando SSH sem que voc� tenha que digitar a senha de acesso todas as vezes que rodar o script". Como este t�tulo seria muito grande, resolvi abreviar e explicar ao longo do tutorial.

Todos n�s temos a necessidade de fazer c�pias de seguran�a (ou backup) de informa��es, sejam estas entre esta��es e um servidor, entre servidores ou at� mesmo entre esta��es. O Linux* conta com v�rias ferramentas interessantes para estas tarefas, sendo uma delas o rsync, um pequeno aplicativo que permite a c�pia de arquivos de uma m�quina para outra de forma segura.

N�o estarei aqui discutindo como usar o rsync mas sim como permitir que um script acesse um servidor ou outra m�quina sem que o usu�rio tenha que digitar a senha de acesso, podendo assim agendar o script para que seja executado de tempos em tempos.

Como fazer

Para que n�o seja necess�rio informar a senha todas as vezes que vamos fazer uma c�pia dos arquivos de uma m�quina � preciso export�-la para a m�quina remota. Com isso, a m�quina local (que ir� receber os arquivos), pode sem complica��es fazer executar os comandos necess�rios para a opera��o.

Para exportar a senha, use os seguintes comandos:


# ssh-keygen -t dsa -f ~/.ssh/id_dsa

# cat ~/.ssh/id_dsa.pub | ssh root@maquina_remota 'cat - >> ~/.ssh/authorized_keys'

# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


A primeira linha faz com que seja criada uma chave DSA e esta seja armazenada no arquivo id_dsa. Observe que neste caso est� sendo usado o par�metro DSA devido ao suporte ao SSH vers�o 2. Se seus sistemas somente suportam SSH vers�o 1, mude esta op��o para rsa1.

As outras duas linhas colocam a chave criada dentro do arquivo de chaves autorizadas tanto na m�quina que serve os arquivos quanto na que recebe. Na segunda linha troque maquina_remota pelo endere�o IP da m�quina que vai servir os arquivos.


Pronto! Agora podemos criar um script para fazer a c�pia dos arquivos:


#!/bin/bash
#
# backup.sh
#Script para fazer copia de arquivos do servidor para a maquina de backup
#
# Criado por Paulino Michelazzo - paulino@michelazzo.com.br
# Versao 1.0 - marco/04
#
#

rsync -avz root@maquina_remota:/origem_dos_dados/ /destino_dos_dados/


E podemos agendar para que este script seja executado todas as madrugadas as 2 da manh�, colocando a seguinte linha dentro do arquivo /etc/crontab

0 2 * * * root /etc/backup.sh


Pronto! Agora todos os dias as 2 da manh�, os arquivos da m�quina remota ser�o copiados, em suas �ltimas vers�es/altera��es para a m�quina de destino (ou local), permitindo que, em caso de qualquer problema, estes possam ser colocados novamente nos seus devidos lugares.


Incrementando o script

Uma reclama��o existente � que n�o existe um arquivo de log para o acompanhamento do que foi feito pelo script. Mas este problema pode ser resolvido com um redirecionamento de sa�da de tela para um arquivo, da seguinte forma:

#!/bin/bash
#
# backup.sh
#Script para fazer copia de arquivos do servidor para a maquina de backup
#
# Criado por Paulino Michelazzo - paulino@michelazzo.com.br
# Versao 1.0 - marco/04
#
#

SYNC_LOG=/var/log/rsync.log # local onde o arquivo de log sera armazenado
# Delimitador de entrada de log
echo "******************************" >> $SYNC_LOG
date >> $SYNC_LOG
echo "Inicio da sincronizacao" >> $SYNC_LOG
rsync -avz root@maquina_remota:/origem_dos_dados/ /destino_dos_dados/ >> $SYNC_LOG

echo "Fim da sincronizacao" >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG

Com as altera��es acima propostas, todas as sa�das do script ser�o redirecionadas para o arquivo /var/log/rsync/log, o qual poder� ser lido com qualquer editor de sua prefer�ncia, sendo que as informa��es relativas a execu��o do script ficam entre os coment�rios In�cio e Fim da sincroniza��o.

Outras mudan�as podem acontecer, tais como escolher somente alguns arquivos ou um a inclus�o de v�rios outros diret�rios no mesmo script para a opera��o de backup. Estas mudan�as podem ser implementadas por qualquer um da forma que for mais conveniente para cada cen�rio.

* A grafia est� abreviada para Linux, sendo o nome correto GNU/Linux"

إذا أعجبك الموضوع اضغط هنا , أو ضع إيميلك هنا ليصلك كل جديد

0 commentaires :