Sistema de backup com rsyncd

Com este artigo mostrarei como implementar um sistema de backup em sua rede utilizando o rsync para realizar a sincronização de arquivos entre cliente(s) e servidor.

[ Hits: 94.566 ]

Por: Carlos Marcelo Morgado Rêgo em 18/11/2004


Cliente de backup



3.1 - Instalação


Para instalar o rsync em seu computador, caso esteja utilizando o

Debian

, execute o comando abaixo:

# apt-get install rsync

Se você estiver utilizando outra distro, você pode fazer a instalação através das fontes do programa que pode ser baixado no site oficial:

3.2 - backup.sh


No(s) cliente(s), crie o script como no exemplo abaixo:

#!/bin/bash
#
# /sbin/scripts/backup.sh
#


# Execução do rsync

RSYNC='/usr/bin/rsync -pavR --delete --password-file=/etc/rsync.pass'

# Módulo referente ao cliente
MODULO="servidor-um"

# Usuário deste módulo
USUARIO="servidor-um-backup"

# IP ou Hostname do servidor de backup
SERVIDOR="192.168.1.1"

# Destino da sincronização
DEST="$USUARIO@$SERVIDOR::$MODULO/"

# Log do script
LOG="/var/log/backup.log"

# Diretórios a serem "backup`ados"
DIRETORIOS="/etc /var/log /home"


# Grava a data/hora de inicio do backup
echo -e "\nInicio do backup - `date`\n" >> $LOG

# Realiza copia dos diretórios
for i in $DIRETORIOS; do

   $RSYNC $i $DEST >> $LOG 2>&1

done

# Grava a data/hora de fim do backup
echo -e "\nFim do backup - `date`\n" >> $LOG

Dê permissão de execução ao script:

# chmod +x /sbin/scripts/backup.sh

Crie o arquivo /etc/rsync.pass, que deverá conter apenas uma linha com a senha que foi configurada no servidor de backup para este módulo. A permissão deste arquivo DEVERÁ ser 600.

# chmod 600 /etc/rsync.pass

3.3 - Agendando backup


Por fim, agende a execução do backup no Cron. Edite o arquivo de cron do root (# crontab -e) e adicione uma linha para executar o script na freqüência desejada.

O exemplo abaixo fará com que o script seja executado diariamente às 02:00h:

00 02 * * * root /sbin/scripts/backup.sh
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Servidor de backup
   3. Cliente de backup
   4. Bibliografia
Outros artigos deste autor

Como instalar um servidor de Counter-Strike

Escondendo banners de serviços

Leitura recomendada

Firefox com cara de emacs com o conkeror

Endereço fixo para o seu IP dinâmico

Aplicações remotas: um exemplo com o Octave

Modem 3G no Ubuntu Linux 8.04 - Qualquer operadora

Apache 2 + mod_perl 2.0.1

  
Comentários
[1] Comentário enviado por jpfaria em 18/11/2004 - 11:23h

OPa marcelo, tome cuidado com os nomes dos arquivos.. uma hora vc diz que eh rsynd.conf e outra hora vc diz que é rsync.conf isso pode confundir usuários iniciantes.

[]'s

[2] Comentário enviado por cmarcelo em 18/11/2004 - 12:57h

Com certeza João Paulo,
Este pequeno erro eu realmente não notei em minhas revisões.

PARA TODOS, ALTERAR:
No ítem 2.3
"Os arquivos /etc/rsync.conf e /etc/rsync.secrets DEVERÃO ter permissão 600."
É /etc/rsyncd.conf e não /etc/rsync.conf

Desculpem-me

Carlos Marcelo

[3] Comentário enviado por dangelo em 18/11/2004 - 15:13h

Marcelo

O artigo esta muito bem escrito, parabens.

Tenho uma pergunta e uma sugestão.

Primeiro a pergunta, qual a vantagem de fazer esta configuração ao invés de usar o rsync com ssh que pra mim parece bem mais simples?

E a sugestão, para quem precisa manter versões dos arquivos alterados, uma dica é usar o rdiff-backup.

[4] Comentário enviado por armandogozarem em 19/11/2004 - 17:33h

Pessoal tó com umas dificuldades, eu acho que alguem poderia me ajudar...

Fiz o script na máquina do backup, mas ela nao consegue se loga automaticamente no servidor do backup. Tá pedindo senha, para funcionar tenho que por a senha, o processo não tá sendo automatico!!

o que será que está errado?

/usr/bin/rsync -pavR --delete --password-file=/etc/rsync.pass /etc adm-armando@192.168.1.10:

[5] Comentário enviado por fabio em 19/11/2004 - 18:13h

Armando,

Dê uma lida no artigo abaixo, ele serve como bom complemento para esse aqui. Autenticando por chaves do SSH faz com que seu rsync execute sem pedir senha também.

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1084

[]'s

[6] Comentário enviado por cmarcelo em 20/11/2004 - 02:41h

Armando,

Há um pequeno erro ao indicar o server:

"/usr/bin/rsync -pavR --delete --password-file=/etc/rsync.pass /etc adm-armando@192.168.1.10:"

Alterar "adm-armando@192.168.1.10:" para "<usuario>@<server>::<modulo>/"

Deverá funcionar,

Carlos Marcelo

[7] Comentário enviado por armandogozarem em 22/11/2004 - 10:47h

ok faltava o nome do módulo mas quando aplico o comando:

"/usr/bin/rsync -pavR --delete --password-file=/etc/rsync.pass /etc adm-armando@192.168.1.10::backup/" , veja só o erro que ocorre:

@ERROR: auth failed on module backup
rsync: connection unexpectedly closed (89 bytes read so far)
rsync error: error in rsync protocol d#

Pareçe alguma configuração no servidor que não ativo os módulos.

Configuração do Servidor

# /etc/rsyncd.conf
#

# Usuário sob o qual o rsync irá rodar
uid=root

# Grupo sob o qual o rsync irá rodar
gid=root

# Arquivo de log
log file = /var/log/rsyncd.log

hosts allow = 192.168.1.10

# Módulo para backup
[backup]
path = /backup
auth users = adm-armando
secrets file = /etc/rsyncd.secrets
read only = true
list = false
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
ata stream (code 12) at io.c(150)

e o arquivo

#
# /etc/rsync.secrets
#

# Usuários e senhas que se conectarão ao servidor
# Formato:
# <usuario>:<senha>
adm-armando:teste



[8] Comentário enviado por juglenijr em 05/04/2005 - 17:23h

Pessoal instalei com o artigo informa e esta dando erro:

/etc/rc.d/rc.rsync: line 24: unexpected EOF while looking for matching `"'
/etc/rc.d/rc.rsync: line 26: syntax error: unexpected end of file

Estou utilizando o Fedora Core 3 com o Kernel 2.6.10
Instalei o rsync pelo apt-get

O que esta acontecendo?

Notei que no diretorio .../xinetd.d/ tem um arquivo rsync com o conteudo:

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
# RSYNC_ENABLE=true
# RSYNC_OPTS='--config=/etc/rsyncd.conf --port=873'
}

esta 2 estruçoes comentadas foi eu que coloquei mais nao funfa..

mais eu criei o arquivo rc.rsync no rc.d como informa o artigo..

Abraço

[9] Comentário enviado por juglenijr em 05/04/2005 - 17:47h

Com a ajuda de uns amigos encontramos a falta de uma ASPA no codigo rc.rsyncd

#!/bin/bash
#
# /etc/rc.d/rc.rsyncd
#

# Executável do rsync
RSYNC="/usr/bin/rsync"
# Opções de inicialização
RSYNC_OPTS="--config=/etc/rsyncd.conf --port=873"


case $1 in
start)
$RSYNC --daemon $RSYNC_OPTS
;;
stop)
killall rsync
;;
restart)
killall rsync
$RSYNC --daemon $RSYNC_OPTS
;;
*)
echo "Use: /etc/rc.d/rc.rsync {start|stop|restart}" ############## Aqui
esac

Esta esta correto agora

[10] Comentário enviado por juglenijr em 05/04/2005 - 19:09h

pessoal agora nao estou conseguindo usar o script do cliente, esta dando erro:

@ERROR: auth failed on module servidor-softcomp
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(359)
@ERROR: auth failed on module servidor-softcomp
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(359)
@ERROR: auth failed on module servidor-softcomp
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(359)

Fim do backup - Ter Abr 5 15:03:53 BRT 2005

Portugues ###################
falha ao autenticar no módulo servidor-softcomp conecção fechada inesperadamente ( recebidos 0 bytes)
erro na transmissão de dados do protocolo do rsync (código 12) em io.c(359)
###################

Acho estranho porque ele informa que o bkp finalizou

[11] Comentário enviado por crcorrea em 18/05/2006 - 15:04h

Nao descobre o motivo do erro descrito abaixo?
alguem teve este problema :

Inicio do backup - Thu May 18 14:57:27 BRT 2006
@ERROR: access denied to XXXXX from XXXX.operacao.xx(200.200.1004.00)
rsync: connection unexpectedly closed (85 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
Fim do backup - Thu May 18 14:57:28 BRT 2006

[12] Comentário enviado por rockstore6 em 19/07/2007 - 10:17h

muito bom gostei mas eu queria saber também c dar pra fazer back do sistema mesmo todinho saca do linux

[13] Comentário enviado por andromeda em 24/10/2007 - 10:14h

Muito bom mesmo!!!! Você manda muito bem Marcelo!!!!!
Aprendi muito nesse artigo!!!!

[]'s

[14] Comentário enviado por jeffr2 em 11/03/2014 - 13:24h

ressucitando o topico, alguem me ajude por favor.. o rsyncd.secrets é obrigatorio? nao ha uma forma do sistema utilizar o root por padrao?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts