Você está na página 1de 10

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

Utilizando o RSYNC para fazer backups de servidores e estaes Windows


Autor: Dailson Fernandes (fofo) - http://www.dailson.com.br <listas at dailson.com.br> Data: 08/08/2008 Introduo Este artigo pode ser acessado diretamente no site www.dailson.com.br. Quem utiliza o rsync para fazer backups entre mquinas Linux, sabe como fcil manter backups centralizados e atualizados de forma fcil, eciente e segura. E ainda mais se sua unidade de ta for em um servidor Linux (como o meu caso), voc pode deixar seus scripts de backup rodando para reunir todos os dados importantes em uma nica mquina para depois fazer o backup em ta magntica. Antigamente (ou atualmente dependendo do Administrador da Rede) quando queramos fazer backups entre servidores remotos e centraliz-los, geralmente utilizvamos o FTP que atravs de alguns comandos possvel fazer a conexo, login , e senha automtico e ainda mandar todos os arquivos para serem feitos backups em um servidor. O grande problema a que o FTP manda a senha em texto plano pela rede e seus arquivos podem ser capturados durante a transferncia. O rsync, como o nome sugere, um programa que sincroniza remotamente os dados entre duas mquinas. Por ser baseado no antigo rcp (remote copy), o software herdou as propriedades de criptograa do protocolo SSH, o que torna sua transmisso de dados mais segura que o FTP . Alm das propriedades de segurana, o rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois so trocados entre os servidores somente as diferenas entre dois grupos de arquivos. Se alteramos uma dzia de arquivos numa poro de centenas, ao executar um rsync do seu desktop para o servidor, somente os arquivos alterados sero enviados por upload e voc ainda no corre o risco de algum espertinho utilizando um snier na rede capturar sua senha de FTP em texto plano. Resumindo, existem pelo menos quatro situaes onde o rsync pode te ajudar:

1 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

copiando (ou sincronizando) arquivos entre dois diretrios locais; copiando (ou sincronizando) arquivos de sua mquina local para um servidor remoto; copiando (ou sincronizando) arquivos de um servidor remoto para sua mquina local; listando os arquivos de um diretrio no servidor remoto (como um "remote ls"). S uma curiosidade, o rsync desenvolvido por Andrew Tridgell, o mesmo autor do SAMBA. Veja em: http://samba.anu.edu.au/rsync/

Como usar o RSYNC e SSH no Windows Voc deve estar pensando em instalar o CYGWIN para comear com o ssh e rsync no ? ESQUEA! Deixe o CYGWIN pra l, existe um aplicativo chamando cwRsync que instala apenas o necessrio para sua mquina Windows se comunicar com qualquer servidor Linux na hora, feito caldo de cana! E ainda possvel fazer um servidor, ou seja, o Windows ser um servidor rsync para sincronizao nas duas vias: Windows -> Linux e Linux -> Windows. Mas isto objeto para outro artigo. Uma dica, se voc quiser basta copiar o diretrio c:\Arquivos de Programas\cwRsync para qualquer estao que tem o mesmo efeito de usar o executvel da instalao. Bom, no Linux, j est tudo pronto, no precisa fazer nada (basicamente), pois a maioria das distribuies j trazem o ssh e rsync instalados por padro, caso no tenha na sua distribuio, instale com o gerenciador de pacotes da sua preferncia, ou baixe o cdigo fonte e compile! Rsync: http://samba.anu.edu.au/rsync/ SSH: http://www.openssh.com/

A idia
O principal para mim fazer os backups dos arquivos importantes do usurio sem que ele perceba que todos os seus dados esto sendo guardados de forma segura independente da vontade dele.

2 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

Por exemplo, voc quer guardar os documentos da empresa ou ainda os emails corporativos. Se voc deixar esta responsabilidade nas mos do usurio... bom ... voc j sabe... Mas que tal deixar uma tarefa agendada que faz isso diariamente?

Obtendo e instalando o cwRsync Voc pode obter o cwRsync aqui. Basta baixar o primeiro arquivo: cwRsync_2.1.4_Installer.zip. Instale cwRsync_2.1.4_Installer.zip conrmando todas as opes. Pronto! Foi criado na pasta C:\Arquivos de Programas um diretrio chamando cwRsync. L esto os binrios do ssh e rsync e um arquivo de exemplo que auto explicativo, porm vamos a alguns exemplos.

Congurando o arquivo .bat ou .cmd para fazer a sincronizao


O funcionamento simples, mas devem existir no cabealho do arquivo, a declarao de algumas variveis, ento deixa sempre o cabealho do arquivo desta forma: @ECHO OFF SETLOCAL SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC SET CYGWIN=nontsec SET HOME=%HOMEDRIVE%%HOMEPATH% SET CWOLDPATH=%PATH% SET PATH=%CWRSYNCHOME%\BIN;%PATH% E logo abaixo destas linhas pode comear a escrever as linhas que vo copiar seus diretrios e/ou arquivos para um servidor remoto.

Exemplos Em primeiro lugar, precisamos convencionar que: C:\ para o rsync / C:\Arquivos de Programas para o rsync /"Arquivos de Programas" C:\Arquivos de Programas\Microsoft Oce para o rsync /"Arquivos de Programas/"Microsoft Oce"

3 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

Opes: --recursive ou -r = cpia recursiva, ou seja todos os arquivos e subdiretrios abaixo do diretrio informado; -a = modo arquivo; -v = Modo detalhado (verbose). Ento vamos aos exemplos. Obs: Lembrando que todas as linhas abaixo so inteiras com enter apenas no nal. Para o exemplo usaremos o servidor 192.168.0.1: Usurio do servidor: root Local: Um HD de backup montado em /media/hd_backup 1. Fazer backup dos emails do outlook do usurio Dailson: rsync -av /"Documents and Settings"/dailson/"Conguraes Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup 2. Fazer o backup da pasta C:\Sistema Empresa: rsync -av --recursive /"Sistema Empresa" root@192.168.0.1:/media/hd_backup 3. Guardar a pasta meus documentos do usurio dailson: rsync -av --recursive /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup 4. Guardar a pasta HOME inteira do usurio dailson: rsync -av --recursive /"Documents and Settings"/dailson root@192.168.0.1:/media /hd_backup 5. Fazer backup da pasta do banco de dados da empresa C:\Banco de Dados: rsync -av --recursive /"Banco de Dados" root@192.168.0.1:/media/hd_backup Obs1: Lembrando que todas as linhas abaixo so inteiras com enter apenas no nal. Ento um script backup.bat completo com os exemplos acima caria desta forma: @ECHO OFF REM ***************************************************** REM Script de Backup

4 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

REM Autor: Dailson Fernandes REM Data: 01/08/2008 REM Funo: Faz o backup das pastas importantes do usurio REM ***************************************************** SETLOCAL SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC SET CYGWIN=nontsec SET HOME=%HOMEDRIVE%%HOMEPATH% SET CWOLDPATH=%PATH% SET PATH=%CWRSYNCHOME%\BIN;%PATH% rsync -av /"Documents and Settings"/dailson/"Conguraes Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup rsync -av --recursive /"Sistema Empresa" root@192.168.0.1:/media/hd_backup rsync -av --recursive /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup rsync -av --recursive /"Documents and Settings"/dailson root@192.168.0.1:/media /hd_backup rsync -av --recursive /"Banco de Dados" root@192.168.0.1:/media/hd_backup

Opes que voc deve conhecer

1. Mantendo a imagem do backup idntica a origem


Um backup feito com rsync vai ser feito de forma incremental. Porm se o usurio renomear um arquivo, apagar ou mover da origem (por exemplo da pasta Meus Documentos), o rsync ir copi-lo novamente e car um fantasma no destino, ou seja, se o usurio apagar alguns arquivo, eles continuaram no backup e o efeito colateral disso que o backup crescer sem parar. A idia fazer o seguinte, quando o usurio apagar um arquivo, o arquivo deve ser apagado do backup tambm. A opo do rsync que faz isso : --delete Ento a linha correta para o backup da pasta meus documentos do exemplo anterior seria:

5 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

rsync -av --recursive --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

2. Evitando backup de alguns arquivos


Voc no deseja detonar seu espao em disco com as msicas e lmes do seu usurio no ? Voc pode dizer ao rsync para evitar alguns tipos de arquivos, bastando para isso usar a seguinte opo: --exclude="O que se quer evitar" Exemplo: Vou evitar que v para o backup os seguintes arquivos: Arquivos de msica (MP3, OGG, WAV, WMA...) Arquivos de Filme (AVI, MPEG, MPG, FLV, MP4, WMV, AMV ...) Programas e arquivos temporrios (EXE, COM, TMP) Fotos e imagens (JPG, JPEG, BMP ...) Basta voc separar com espao e colocar quantas excees quiser. E ainda pode utilizar coringas. Por exemplo: --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 ... O nosso exemplo da pasta Meus Documentos j com estas opes tratadas neste tpico cariam deste jeito: rsync -av --recursive --delete -e "ssh -p 16117" --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.v --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup Neste caso o script completo caria desta forma: Obs: Lembrando que todas as linhas abaixo so inteiras com enter apenas no nal. Grave ele na raiz do C:\ e chame de backup.bat: @ECHO OFF REM ***************************************************** REM Script de Backup REM Autor: Dailson Fernandes REM Data: 01/08/2008 REM Funo: Faz o backup das pastas importantes do usurio

6 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

REM ***************************************************** SETLOCAL SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC SET CYGWIN=nontsec SET HOME=%HOMEDRIVE%%HOMEPATH% SET CWOLDPATH=%PATH% SET PATH=%CWRSYNCHOME%\BIN;%PATH% rsync -av /"Documents and Settings"/dailson/"Conguraes Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.v --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Sistema Empresa" root@192.168.0.1:/media /hd_backup rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.v --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.v --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.v --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Banco de Dados" root@192.168.0.1:/media /hd_backup

Usando a tarefa agendada ou o AT do Windows Bom, j que todo o trabalho est feito, s falta agendar a tarefa para que este script seja executado diariamente, ou de acordo com a sua necessidade. Mas no custa nada lembrar que da primeira acontecer o seguinte: 1. Somente da primeira vez que voc rodar o script, o rsync (ssh) pedir para voc aceitar a chave do host no qual est enviando os dados. Para isso basta digitar yes e pronto. Esta pergunta no acontecer novamente.

7 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

2. A primeira cpia completa e dependendo da quantidade de dados ir demorar um pouco. Porm se imediatamente aps a cpia voc chamar o script novamente, ver que o rsync no vai fazer nada. O rsync a partir da segunda cpia s vai copiar os arquivo que foram alterados, criados ou deletar do backup o que foi deletado da origem. 3. Para agendar a tarefa deste script rodar automaticamente diariamente ou a sua escolha v em tarefas agendadas do Windows em: Iniciar / Programas / Acessrios / Ferramentas / Tarefas Agendadas Ou se preferir, use o AT do Windows, que um agendador de tarefas semelhante ao do Linux que tambm roda em linha de comando. Se quiser aprender sobre o AT no Windows, visite a seguinte pgina: http://support.microsoft.com/kb/313565/pt-br

Fazendo com que o script de backup no pea senha Antes da cpia comear, o login feito via ssh. Nesta hora o login passado pela string root@192.168.0.1:/media/hd_backup, porm imediatamente depois solicitada a senha. Ento este incomodo gerado, ou seja, toda vez que a tarefa agendada iniciar o script de backup, a senha ser solicitada. E se o usurio no tiver na frente do computador? Ou se esse backup for feito de madrugada? Para resolver este problema, basta gerar as chaves pblica e privada e fazer com que o cwRsync comece o backup sem interveno humana.

Gerando as chaves
No servidor Linux, gere as chaves pblicas e privadas da seguinte forma. No usurio que voc far a conexo sem senha (vou utilizar o root como exemplo), digite no terminal: # ssh-keygen Quando perguntado para entrar com uma "passphrase", apenas tecle "Enter" duas vezes para que que em branco, caso contrrio esta frase precisar ser digitada posteriormente. A sada do comando esta:

8 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

Generating public/private rsa key pair. Enter le in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identication has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key ngerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx Pronto, foram geradas suas chaves pblicas e privada dentro do diretrio /root/.ssh. So elas: /root/.ssh/id_rsa (privada) /root/.ssh/id_rsa.pub (pblica) Agora faa o seguinte: # cat /root/id_rsa.pub >> /root/.ssh/authorized_keys importante que a chave pblica (id_rsa.pub) seja adicionada (usando o sinal de maior maior ">>") dentro do arquivo "authorized_keys", pois podem haver outros clientes registrados neste mesmo arquivo. Pegue o arquivo /root/.ssh/id_rsa (a sua chave privada) e copie no seguinte diretrio na sua mquina Windows: c:\Documents and Settings\seu_usurio\.ssh Pronto! Agora rode novamente o backup.bat e veja que o backup feito sem nenhuma interferncia. A chave privada est em "/root/.ssh/id_rsa" e a pblica em "/root/.ssh/id_rsa.pub".

Concluses e crditos Bom, estou compartilhando a soluo que achei em meu trabalho de fazer backups de servidores e estaes Windows de forma segura e ntegra. Utilizo esta forma h alguns anos sem quaisquer tipos de problemas.

9 de 10

17-09-2012 14:02

Utilizando o RSYNC para fazer backups de servidores e ...

http://www.vivaolinux.com.br/artigos/impressora.php?co...

Existem muito mais opes que podem ser utilizadas com rsync. Para isso consulte o manual. Ele muito bom e explicativo. Se voc tiver no Linux, digite "man rsync" ou consulte ele na web em: http://www.samba.org/ftp/rsync/rsync.html A introduo foi retirada do artigo de Fbio Berbert de Paula em Transferindo arquivos com o rsync/. Gerao de chaves: Conexes SSH sem senha fcil e descomplicado Este artigo pode ser acessado a partir do meu site em: http://www.dailson.com.br E lembrem-se... Flames > /dev/null!

http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backupsde-servidores-e-estacoes-Windows Voltar para o site

10 de 10

17-09-2012 14:02