Rsync sem senha

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.

[ Hits: 97.837 ]

Por: Paulino Michelazzo em 31/03/2004 | Blog: http://www.michelazzo.com.br


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

Fonte:
http://www.michelazzo.com.br/tiki-index.php?page=Rsync+sem+senha

Página anterior    

Páginas do artigo
   1. Introdução
   2. Incrementando o script
Outros artigos deste autor

Traduzindo software com qualidade

O software livre e as novas oportunidades

Lobos em peles de cordeiros

Força-tarefa brasileira disponibiliza versão do TikiWiki em Português do Brasil

O que você vai ser quando crescer?

Leitura recomendada

ARM, utilização de snapshot de pacotes no Arch Linux

Controle sua banda de maneira simples e inteligente com CBQ

Configuração da rede no Conectiva 10

Instalar XGL e Beryl no Ubuntu 6.06 LTS (Gnome)

Emergindo grandes pacotes em hardwares fracos com o auxílio de outro computador no Gentoo Linux

  
Comentários
[1] Comentário enviado por fabio em 31/03/2004 - 13:36h

Esse recurso de autenticação sem senha é muito útil, só o que economizo de digitação por dia não está no gibi. Excelente artigo!

E pra quem quiser saber um pouco mais sobre rsync, aqui mesmo no site tem um artigo que pode complementar este:

Transferindo arquivos com o rsync
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=338

[]'s

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

[3] Comentário enviado por jeffestanislau em 01/04/2004 - 10:47h

Parabéns Paulo,

Seu artigo é uma mão na roda... muito útil mesmo!!!

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

Alguém sabe como eu resolvo isso?

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

[]'s à todos os pinguins!

Daniel

[6] Comentário enviado por alphainfo em 05/04/2004 - 10:57h

cmarcelo, o que vc quer saber é se ele consegue deletar o arquivo que foi removido do cliente no servidor?

Se o que vc quer é, por exemplo, copiar apenas os arquivos alterados, temos a flag --existing.

de novo []'s

[7] Comentário enviado por gilmol em 18/05/2004 - 17:22h

Muito bom! Vai me quebrar um galhão!

Gilmol

[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

[9] Comentário enviado por pmichelazzo em 24/11/2004 - 18:29h

Muito bom hein!

Vou colocar no meu site a atualização do script.

Valeu!!!

[10] Comentário enviado por tarcio em 21/09/2006 - 15:17h

+ uma versão do script


#!/bin/bash
# Tárcio Meireles - tarcio . net (a) gmail . com
log="/var/log/backup.log"
#user@serv:/origem;destino;velocidade
conf[1]="root@$192.168.0.1:/diretorio1;/mnt/bkp01;50"
conf[2]="root@$192.168.0.1:/caminhodiretorio2;mnt/bkp02;40"

for X in ${conf[*]}
do
origem=$( echo $X | cut -f1 -d";")
dest=$( echo $X | cut -f2 -d";")
veloc=$( echo $X | cut -f3 -d";")
dti=$(date +%F-%X)
echo "rsync --bwlimit=$veloc -Cravzp $origem $dest"
dtf=$(date +%F-%X)
echo "I:$dti|F:$dtf|$origem|$dest|$veloc" >> $log
done

neste caso fica + facil configurar pois é só informar a origem o destino e a velocidade

[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

[14] Comentário enviado por pmichelazzo em 08/02/2008 - 16:49h

Olá Mariomol

Quais são os SO's que está testando? Este artigo está no ar há 4 anos e poucos foram os problemas que tive report dele.

Poderia fornecer maiores infos?

Abs

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

[18] Comentário enviado por removido em 31/05/2010 - 12:17h

exelente artigo!

estava procurando apenas como usar o ssh sem senha e ele funcionou perfeitamente aqui no meu debian!

[19] Comentário enviado por DonFellipe em 12/08/2010 - 03:41h

Muito obrigado, me foi muito útil!
Um abraço

[20] Comentário enviado por selvaking em 25/02/2011 - 19:04h

Valeuz! Foi uma mão na roda! E viva o Linux!

[21] Comentário enviado por Carlos Domingues em 14/02/2012 - 14:48h

Fiz o procedimento conforme orientado, mesmo assim pede senha na hora do sicronismo. Indepedente se aciono o sync do receptor ou do origem.


[22] Comentário enviado por rogeriosilverio em 14/11/2012 - 15:10h

Perfeito! Simples e Objetivo...Me ajudou bastante... Parabéns!

[23] Comentário enviado por rappa888 em 02/10/2014 - 12:56h

amigo, aqui funcionou.. mas só quando estou com a porta ssh 22.

no caso os meus ssh tem a porta 2230, ai este comando:
rsync -avz --rsh='ssh -p2230' /tmp root@192.168.5.66:/tmp

ai desta maneira continua pedindo senha, podes me ajudar ?


[24] Comentário enviado por gucoelho em 12/05/2015 - 10:11h

Para contribuir com o artigo

Talvez é necessário dar permissão 644 para o arquivo authorized_keys e só deu certo após dar essa permissão :
# chmod 644 authorized_keys


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts