terça-feira, 28 de outubro de 2008

Backups de Redes com Fedora + Rsync

Farei uma breve introdução sobre algumas caracterisiticas interesantes do rsync.

Alem de ser um utilitário para sincronização de arquivos e diretórios entre duas localidades diferentes, o rsync funciona como excelente ferramenta de backup.

Rsync é um software de código aberto sob os termos da GNU GPL Versão 2.

O rsync foi escrito por Andrew Tridgell e por Paul Mackerras. Muitas outras pessoas contribuíram.

Está sendo mantido atualmente por Wayne Davison.

Esta na versão 2.6.3

Site: http://samba.anu.edu.au/rsync
Downlaod: http://dag.wieers.com/rpm/packages/rsync/


O rsync funciona como uma ferramenta de backup integral quando é executado pela primeira
vez, ao fazer o backup do mesmo disretorio outras vezes, rsync comporta-se como sistema de backup
incremental. Ele copia apenas o que mudou na árvore de diretórios, antes de transferir os dados, faz uma comparação do arquivo na origem e no destino e de um arquivo modificado ele irá transferir apenas o blocos novos ou alterados do arquivo.

Resultado: Um ganho de tempo considerado e menos trafego na rede.

Tambem �feita uma busca por arquivos comrrompidos, que sao substituías por copias integras
encotradas na localiza�o orignal.

O rsync �um dos melhores utilitario para backups porem nao possui criptografia
na copia dos arquivos.
Mas Como veremos nesse artigo podemos solucionar isso usando
o SSH, com isso teremos um canal seguro para o trafego do nosso backup.Para isso teremos
que criar uma chave DSA no serviodr para termos acesso via SSH sem usar senha.


O comando base para isso

#rsync -a //fonte /destino


Bom vamos ao trabalho


Criando a Chave DSA (no servidor de arquivos que recebera conexões ssh sem senha)

[servidor@root ~]# ssh-key-gem -t dsa -f ^/.ssh/id_dsa

OBS: Ira pedir para digitar o LOCAL onde sera instalado a chave e depois a senha e a
confirmação da senha, pressione ENTER nas tres opções , para instalar no local padrao
e nao ter senha.


Agora copiamos a chave para as estações que vc deseja que tenha acesso ao servidor

OBS: É preciso que ja tenha sido ou seja feita um conexao normal via SSH com as esta�es
que vc ira copiar a chave DSA.

OBS 2: Nao é recomendavel dar acesso sem usar senha para muitas estações por questoes de
segurança, o ideal é se ter uma maquina somente para backup e entao somente ela tera
permissao de acesso sem senha no servidor.


[servidor@root ~]# scp ~/.ssh/id_dsa.pub 192.168.0.3:~/.ssh/


(CLIENTE ou servidor de backup que irá se conectar ao servidor de arquivos)

Agora alteramos o nome nome da chave para authorized_keys

[backup@root ~]# mv ~/.ssh/id_dsa ~/.ssh/authorized_keys

Pronto agora ja temos acesso via ssh sem usar senha agora vamos ao backup.

[backup@root ~]# rsync -avz root@192.168.0.1:/home/arquivos /backup

Onde: 192.168.0.3:/home/arquivos é o ip e a pasta do servidore de arquivos
/backup é a pasta do servidor de backups

Você também pode criar um script para fazer o trabalho por você ;O)

Escolha seu editor de texto favorito, no meu caso o vim

Digite como root:

# vim nome_do_script.sh

Insira o conteúdo abaixo fazendo as alterações para sua rede e servidor.

#!/bin/sh

# SCRIPT DE BACKUP
# Script que copia os arquivos da pasta /home/arquivos do servidor
#para pasta local /home/backup
#Tambem cria um arquivo chamado relatorio.txt com as datas e execuções do backup

sync -avz root@192.168.0.1:/home/arquivos /home/backup

echo -n "Backup Realizado com Sucesso em :" >> /home/backup/relatorio.txt
date >> /home/backup/relatorio.rx


################ fim #############

Saia e salve.

Agora é só dar permissão de execução para o scritp criado e inserir o mesmo na CRONTAB.

Dando permissão de execução:

# chmod +x nome_do_script.sh

Inserindo na crontab:
Digite:

# crontab -e

00 19 * * * /root/scripts/nome_do_script.sh

Nenhum comentário: