Como fazer a sincronização e/ou backup de dados entre máquinas usando SSH sem senha. De quebra ainda vamos criar um script para efetuar o backup diário de seu diretório de dados.
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
# Versão 1.0 - marco/04
#
#
SYNC_LOG=/var/log/rsync.log # local onde o arquivo de log será armazenado
# Delimitador de entrada de log
echo "******************************" >> $SYNC_LOG
date >> $SYNC_LOG
echo "Inicio da sincronização" >> $SYNC_LOG
rsync -avz root@maquina_remota:/origem_dos_dados/ /destino_dos_dados/ >> $SYNC_LOG
echo "Fim da sincronização" >> $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
[2] Comentário enviado por cabelo em 31/03/2004 - 14:05h
Parabens Paulo:
Só tem fera nesta comunidade! Eu estava precisando criar algo semelhante para sincronizar os códigos fontes. Com este artigo, meu problema esta resolvido.
[4] Comentário enviado por cmarcelo em 03/04/2004 - 18:43h
Aproveitando este Artigo eu gostaria de tirar uma dúvida em relação ao rsync
Por exemplo, eu tenho o servidor A e B e os arquivos x, y, z que estão no A, eu passo o 1o rsync e o servidor B fica com esses 3 arquivos, mas caso eu delete um dos arquivos em A, ele mantém em B, ou seja a origem e o destino não ficam sempre iguais....
[5] Comentário enviado por alphainfo em 05/04/2004 - 10:50h
Caríssimos,
acho que vale a pena abordar a questão da configuração do SERVIDOR rsync, que inclue os arquivos rsyncd.conf e rsyncd.secrets... levei muita portada até entender a existência desse arquivo.
Mas com certeza, enche os olhos da galera que desenvolve, além de quebrar meu galho fazendo uma máquina redundante.
[8] Comentário enviado por Guaraldo em 24/11/2004 - 18:20h
Opa...
Fiz umas alteracõezinhas para torná-lo multiusuário e multiservidor...
Vê o que tu acha (chamei de versão 1.1 do script):
#!/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
# Versão 1.0 - marco/04
#
# Alterado para tornar-se multiusuário e multiservidor por:
# Luiz Guaraldo - guaraldo@universolivre.com.br
# Versão 1.1 - novembro/04
#
if [ '$2' ]; then
user=$1
serv=$2
dest=$USER
else
user=$USER
serv=$1
dest=$USER
fi
SYNC_LOG=/var/log/rsync.log # local onde o arquivo de log será armazenado
# Delimitador de entrada de log
echo "******************************" >> $SYNC_LOG
date >> $SYNC_LOG
echo "[$USER] Inicio da sincronização" >> $SYNC_LOG
rsync -avz $user@$serv:/home/$user /home/$USER >> $SYNC_LOG
echo "[$USER] Fim da sincronização" >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
[11] Comentário enviado por renatopradop em 08/12/2006 - 15:17h
olá amigao... blz? olha soh, seu artigo me quebrou um galhão, foi otimo e resolveu meu problema 100%, so que me gerou outro problema q naum consigo resolver.
Quando estas chaves são geradas, os servidores de origem e destino estabelecem uma relação de confiança, permitindo q eu consiga loga em um e em outro sem autenticação, como eu faço pra desabilitar isso após a transferencia do rsync, ou seja, desabilitar essa chave RSA ? e so habilitá-la na hora da transferencia ? []'s
[12] Comentário enviado por apamaio em 29/06/2007 - 15:44h
Meus parabéns pelo artigo e muito obrigado. Obrigado pois vai facilitar muito meu trabalho de backups do server Linux. Após fazer algumas adaptações irei começar a busca por uma solução de Win para Linux (se é que existe).
Grand abraço.
[13] Comentário enviado por mariomol em 08/02/2008 - 16:45h
Ola, muito bem! Mas comigo, testando em 8 servers, apenas consegui em um! Nos demais só funciona sem senha usando a chave para o usuário root! Qualquer outro usuário que tento criar a chave nao funciona, ele pede senha! Já tentei com rsa, dsa e copio sempre em /home/usuario/.ssh , somente com root q fica em /root/.ssh/! Alguma dica? Obrigado
[15] Comentário enviado por actdl em 04/11/2008 - 19:45h
Prezado colega, primeiramente parabéns pelo seu artigo. Estou enfrentando agora um problema sobre seu artigo, que ainda não consegui resolver, que é o seguinte:
Re-instalei o servidor remoto e esqueci a passphrase do servidor de backup. Alterei o passphrase do sv bkp, e não consigo mais estabelecer uma relação contínua entre os dois, pq este servidor que NÃO foi formatado recusa o acesso do outro por ssh, em razão do codigo RSA gerado. Como refazer o codigo RSA? se alguem puder indicar um artigo, eu agradeço!
[16] Comentário enviado por actdl em 07/11/2008 - 00:15h
resolvi o problema acima, mas de maneira insegura, coloquei o passphrase vazio, pq se for colocado algo, os servidores pedirão este passphrase, e o cron não executará o rsync. Se tiver alguém uma dica de colocar o passphrase com palavras, e estabelecer a sincronia com o cron, me digam! ah, sobre o RSA do servidor que já tinha uma relação de confiança, movam ou apaguem /root/.ssh/know..., esqueci o nome todo do arquivo agora. hehehe
[17] Comentário enviado por sakaiarnaldo em 26/07/2009 - 18:36h
estacao windows e servidor de backup linux.
como deixar rsync na estacao windows sem senha.
preciso copiar estacao xp para o servidor linux sem pedir senha.