terça-feira, 5 de agosto de 2008

Backup Incremental de Servidores e Estações Windows em Servidores Linux com o RSYNC


Backup de Servidores e Estações Windows com o RSYNC.

Este Artigo está publicado no VivaoLinux em
http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows

1. Introdução

Quem utiliza o RSYNC para fazer backups entre máquinas Linux, sabe como é fácil manter backups centralizados e atualizados de forma fácil, eficiente e segura. E ainda mais se sua unidade de fita 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 máquina para depois fazer o backup em fita magnética.

Antigamente (ou atualmente dependendo do Administrador da Rede) quando queríamos fazer backups entre servidores remotos e centralizá-los, geralmente utilizávamos o FTP, que através de alguns comandos é possível fazer a conexão, login e senha automático e ainda mandar todos os arquivos para serem feitos backups em um servidor.
O Grande problema ai é que o FTP manda a senha em texto plano pela rede e seus arquivos podem ser capturados durante a transferência.

O Rsync, como o nome sugere, é um programa que sincroniza remotamente os dados entre duas máquinas. Por ser baseado no antigo rcp (remote copy), o software herdou as propriedades de criptografia do protocolo SSH, o que torna sua transmissão de dados mais segura que o FTP.

Além das propriedades de segurança, o rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois são trocados entre os servidores somente as diferenças entre dois grupos de arquivos.

Se alteramos uma dúzia de arquivos numa porção de centenas, ao executar um rsync do seu desktop para o servidor, somente os arquivos alterados serão enviados por upload e você ainda não corre o risco de algum espertinho utilizando um sniffer na rede capturar sua senha de FTP em texto plano.

Resumindo, existem pelo menos quatro situações onde o rsync pode te ajudar:

* copiando (ou sincronizando) arquivos entre dois diretórios locais;
* copiando (ou sincronizando) arquivos de sua máquina local para um servidor remoto;
* copiando (ou sincronizando) arquivos de um servidor remoto para sua máquina local;
* listando os arquivos de um diretório no servidor remoto (como um "remote ls").

Só uma curiosidade, o Rsync é feito pelo Andrew Tridgell, o mesmo autor do SAMBA.
Veja em: http://samba.anu.edu.au/rsync/

2. Como usar o RSYNC e SSH no Windows????

Vocẽ deve estar pensando em instalar o CYGWIN (http://www.cygwin.com/) para começar a o ssh e rsync não é? ESQUEÇA! Deixe o CYGWIN pra lá, existe um aplicativo chamando cwRsync que instala apenas o necessário para sua máquina Windows se comunicar com qualquer servidor Linux na hora, feito caldo de cana! E ainda é possível fazer um servidor, ou seja, o Windows ser um servidor Rsync para sincronização nas duas vias: Windows -> Linux e Linux -> Windows. Mas isto é objeto para outro artigo.

Uma dica, se você quiser basta copiar o diretório c:\Arquivos de Programas\cwRsync para qualquer estação que tem o mesmo efeito de usar o executável da instalação.

Bom, no Linux, já está tudo pronto, não precisa fazer nada (basicamente), pois a maioria das distribuições já trazem o ssh e rsync instalados por padrão, caso não tenha na sua distribuição, instale com o gerenciador de pacotes da sua preferência, ou baixe o código fonte e compile!

Rsync:
http://samba.anu.edu.au/rsync/

SSH:
http://www.openssh.com/

3 - A idéia!

O principal para mim é fazer os backups dos arquivos importantes do usuário sem que ele perceba que todos os seus dados estão sendo guardados de forma segura independente da vontade dele.
Por exemplo, você quer guardar os documentos da empresa ou ainda os emails corporativos.
Se você deixar esta responsabilidade nas mãos do usuário... bom ... você já sabe...
Mas que tal deixar uma tarefa agendada que faz isso diariamente... ????

4 - Obtendo e Instalando o cwRsync.

Você pode obter o cwRsync http://sourceforge.net/project/showfiles.php?group_id=69227&package_id=68081&release_id=615606

Basta baixar o primeiro arquivo: cwRsync_2.1.4_Installer.zip

Instale cwRsync_2.1.4_Installer.zip. confirmando todas as opções.

Pronto! Foi criado na pasta C:\Arquivos de Programas um diretório chamando cwRsync.
Lá contem os binários do ssh e rsync e um arquivo de exemplo que é auto explicativo, porém vamos a alguns exemplos.

4 - Configurando o Arquivo .bat ou .cmd para fazer a Sincronização.

O Funcionamento é simples, mas devem existir no cabeçalho do arquivo, a declaração de algumas variáveis, então deixa sempre o cabeçalho 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 começar a escrever as linhas que vão copiar seus diretórios e/ou arquivos para um servidor remoto.

5 - 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 Office para o Rsync é /"Arquivos de Programas/"Microsoft Office"

Opções:
--recursive ou -r = Cópia Recursiva, ou seja todos os arquivos e subdiretórios abaixo do diretório informado
-a = modo arquivo
-v = Modo detalhado (Verbose)

Então vamos aos exemplos:

Obs: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final

Para o exemplo usaremos o servidor 192.168.0.1
Usuário do Servidor: root
Local: Um HD de Backup montado em /media/hd_backup

1 - Fazer Backup dos Emails do Outlook do Usuário Dailson
rsync -av /"Documents and Settings"/dailson/"Configurações 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 Usuário 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 Usuário 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 são inteiras com enter apenas no final

Então um script backup.bat completo com os exemplos acima ficaria desta forma:

@ECHO OFF
REM *********************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
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/"Configurações 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

6 - Opções que você deve saber

1 - Mantendo a Imagem do Backup idêntica a origem

Um backup feito com rsync vai ser feito de forma incremental. Porém se o usuário renomear um arquivo, apagar ou mover da origem (Por exemplo da pasta Meus Documentos) o rsync irá copiá-lo novamente. E irá ficar um fantasma no destino, ou seja. Se o usuário apagar alguns arquivo, eles continuaram no backup e o efeito colateral disso é que o backup irá crescer sem parar.
A idéia é fazer o seguinte, quando o usuário apagar um arquivo, o arquivo deve ser apagado do backup também.
A opção do rsync que faz isso é

--delete

Então a linha Correta para o backup da pasta meus documentos do exemplo anterior seria:

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ê não deseja detonar seu espaço em disco com as músicas e filmes do seu usuário não é? Você pode dizer ao rsync para evitar alguns tipos de arquivos, bastando para isso usar a seguinte opção:

--exclude="O que se quer evitar"

Exemplo:

Vou evitar que vá para o backup os seguintes arquivos:

Arquivos de música (MP3, OGG, WAV, WMA...)
Arquivos de Filme (AVI, MPEG, MPG, FLV, MP4, WMV, AMV ...)
Programas e arquivos temporários (EXE, COM, TMP)
Fotos e imagens (JPG, JPEG, BMP ...)

Basta você separar com espaço e colocar quantas excessões quiser. E ainda pode utilizar coringas.
Por exemplo:

--exclude=*.jpg --exclude=*.avi --exclude=*.mp3 ...

O Nosso exemplo da pasta Meus Documentos já com estas opções tratadas neste tópico ficariam deste jeito:

rsync -av --recursive --delete -e "ssh -p 16117" --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --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 ficaria desta forma:

Obs: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final

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 Função: Faz o backup das pastas importantes do usuário
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/"Configurações 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=*.flv --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=*.flv --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=*.flv --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=*.flv --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

7 - Simplificando o Script

Ao invés de ficar passando as opções em todas as linhas de comando, podemos simplificar o script colocando todas elas no início como uma variável.
Desta forma:

set opcoes=-av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com

Então o script ficaria desta forma:

@ECHO OFF
REM *********************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
REM *********************************************************
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
set OPCOES=-av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com

rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup

rsync %OPCOES% /"Sistema Empresa" root@192.168.0.1:/media/hd_backup

rsync %OPCOES% /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

rsync %OPCOES% /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup

rsync %OPCOES% /"Banco de Dados" root@192.168.0.1:/media/hd_backup

Simplificou bastante!!!

8 - 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 não custa nada lembrar, que da primeira irá acontecer o seguinte:

1 - Somente da primeira vez que você rodar o script, o rsync (ssh) irá pedir para você aceitar a chave do host no qual você está mandando os dados. Para isso basta digitar yes e pronto. Esta pergunta não irá acontecer novamente.

2 - A primeira cópia é completa e dependendo da quantidade de dados irá demorar um pouco. Porém se imediatamente após a cópia você chamar o script novamente, irá ver que o rsync não vai fazer nada. O Rsync a partir da segunda cópia, só vai copiar os arquivo que foram alterados, criados ou irá 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/Acessórios/Ferramentas/Tarefas Agendadas. Ou se preferir, use o AT do windows, que é um agendador de tarefas semelhante ao do linux que também roda em linha de comando.
Se quise aprender sobre o AT no Windows, visite a seguinte página:

http://support.microsoft.com/kb/313565/pt-br

9 - Fazendo com que o backup não peça senha

Antes da cópia começar, o login é feito via ssh. Nesta hora o login é passado pela string root@192.168.0.1:/media/hd_backup, porém imediatamente depois é solicitada a senha.
Então este incomodo é gerado, ou seja, toda vez que a tarefa agendada iniciar o script de backup, a senha será solicitada. E se o usuário não tiver na frente do computador? Ou se esse backup for feito de madrugada?
Para resolver este problema, basta gerar as chaves pública e privada e fazer com que o cwRsync comece o backup sem intervenção humanda.

1 - Gerando as chaves

No servidor linux, gere as chaves públicas e privadas da seguinte forma:
No usuário que você irá fazer a conexão 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 fique em branco, caso contrário esta frase precisará ser digitada posteriormente.

A saída do comando é esta:

Generating public/private rsa key pair.
Enter file in which to save the key
(/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/root/.ssh/id_rsa.
Your public key has been saved in
/root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Pronto foram geradas suas chaves públicas e privada dentro do diretório /root/.ssh
São elas:
/root/.ssh/id_rsa (A privada)
/root/.ssh/id_rsa.pub (A pública)

Agora faça o seguinte:

cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

É importante que a chave pública (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.

E pegue o arquivo /root/.ssh/id_rsa (a sua chave privada) e copie no seguinte diretório na sua máquina windows:
c:\Documents and Settings\seu_usuario\.ssh

Pronto!

Agora roda novamente o backup.bat e veja que o backup é feito sem nenhuma interferência.

A chave Privada está em "/root/.ssh/id_rsa" e a Pública em "/root/.ssh/id_rsa.pub".

10 - Conclusões e Créditos

Este Artigo está publicado no VivaoLinux em
http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows

Bom. Estou compartilhando a solução que achei em meu trabalho de fazer backups de Servidores e Estações Windows de forma segura e íntegra.
Utilizo esta forma a alguns anos sem quaisquer tipos de problemas.
Existem muito mais opções 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 Introdução foi retirada do artigo de Fábio Bebert de Paula em http://www.vivaolinux.com.br/artigo/Transferindo-arquivos-com-o-rsync/

Geração de Chaves:
http://www.vivaolinux.com.br/artigo/Conexoes-SSH-sem-senha-facil-e-descomplicado/

E Lembrem-se ...

Flames > /dev/null!!

18 comentários:

  1. Muito bom este teu artigo, foi direto ao ponto, continue fazendo artigos destes que é de grande proveita para quem trabalha com computação.

    ResponderExcluir
  2. Muito bom esse seu artigo, bem explicado e com bons exemplos, parabens.

    ResponderExcluir
  3. Ah, só uma dica. Você poderia substituir a repetição das mesmas opções por uma variável, por exemplo:

    set opcoes=-av --recursive --delete -e "ssh -p 16117" --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com --delete

    rsync %opcoes% /"Banco de Dados" root@192.168.0.1:/media/hd_backup

    ResponderExcluir
  4. Amigo faço uso do BackupPC para fazer backup dos dados dos meu servidores, essa ferramenta utiliza o rsync porém uma coisa que eu notei é que o desempenho do RSYNC no windows é MUITO BAIXO se comparado com o linux... Vc pode ler nas listas de discussões que o pessoal reclama muito da lentidão... o seu rsync rodando nos clientes windows alcançam que taxa ? aqui o maximo é 2 MB/s

    ResponderExcluir
  5. Gostei do artigo... achei interessante... aqui na empresa em que trabalho tambem fiz um script utilizando rsync mas é um pouco diferente... é um servidor linux que monta os servidores ou maquinas windows e faz o backup ele utiliza tambem o pdumpfs pra organizar por data... se quiser dar uma olhada no link http://www.passagemlivre.com/2008/05/17/backup-incremental/
    é uma forma diferente. Este meu script esta meio velho ja fiz alterações significativas e está mais automatico...
    mas gostei da sua ideia é uma forma de fazer tambem...
    flw abraço...

    ResponderExcluir
  6. Ao Adriano, LJulio, Alan Kelon e Henrique, obrigado pelos agradecimentos. Vida Longa ao SL.

    Em relação ao ryudo, eu nunca testei a taxa de trasnferência não. Minhas rotinas aqui rodam de madrugada e nunca tive problemas com elas. Mas realmente se for este taxa, é lamentável. Vou ver se faço alguns testes aqui para ver esta taxa.

    Em Relação a dica do Ryudo, foi nota 1000!! Valeu mesmo, pois assim os scritps ficam mais limpos e mais visíveis.
    Vou incrementar ao tutorial sua dica.

    Um grande abraço a todos!

    ResponderExcluir
  7. Olá Dailson !
    Parabéns pelo artigo muito bom !! Já usava para Linux e agora com o windows ficou completo !! Parabéns !!
    Gostaria de saber se para fazer o windows como servidor é o mesmo princípio ??
    Abraço,

    ResponderExcluir
  8. Mto bom...... mas tmb preciso ao inverso ...do Linux para o Windows.

    Obrigado.

    ResponderExcluir
  9. olá

    obrigado pelo artigo, estou tentando fazer a dica funcionar aqui em casa. Mas fiquei com uma dúvida.

    Não tenho um arquivo .bat ou .cmd. Poderia ignorar isso e usar o descrito no artigo, mas não sei aonde ele fica.

    Qual o path para o arquivo

    Abraço
    Herbert

    ResponderExcluir
  10. tinha baixado o arquivo cwRsync_Server_2.1.4_Installer.zip. Por isso faltava o .cmd

    ResponderExcluir
  11. Ola qual o script para parar o rsync

    quando aplico o /etc/init.d/rsync stop ele não para o serviço, e quando aplico /etc/init.d/rsync start ele dis que já tem um processo..

    Da uma força ai pessoal.

    ResponderExcluir
  12. Qual distribuição você está usando.?

    Qual o motivo para para o RSYNC.?

    ResponderExcluir
  13. Bom dia, gostaria de saber como faço para fazer o mesmo processo de backup Windows >> Linux mais fazendo rsync do disco D:\ da minha estação Windows. Aguardo.

    ResponderExcluir
  14. Veja o exemplo abaixo...

    rsync.exe -rav /cygdrive/d/Arquivos_Importantes/ root@10.0.1.1:/backup

    Use /cygdrive/d/ para referenciar o drive d.

    Espero ter ajudado.

    ResponderExcluir
  15. Qual o destino usado se ele for um HD externo e não uma estação linux?
    Tipo: copiar o D:\Arquivos_Importantes para o HD externo montado no I e na pasta backup

    Seria isso?
    rsync.exe -avr /cygdrive/d/Arquivos_Importantes/ /cygdrive/i/backup

    Testei e não funcionou. Estou usando o cwRsync 4.05

    ResponderExcluir
    Respostas
    1. Descobri qual o erro: Em vez de o cwRsync ser instalado em C:\Program Files, como meu sistema é em português e 64 bits a pasta de instalação é: C:\Arquivos de Programas (x86)
      Na configuração porém deve -se colocar %PROGRAMFILES(x86)%

      Agora tudo funcionou. Abaixo meu arquivo Backup.bat

      @ECHO OFF
      REM *****************************************************
      REM Script de Backup
      REM Autor: Éderson Gomes
      REM Data:
      REM Função: Faz o backup das pastas importantes do usuário
      REM *****************************************************
      SETLOCAL
      SET CWRSYNCHOME=%PROGRAMFILES(x86)%\CWRSYNC
      SET CYGWIN=nontsec
      SET HOME=%HOMEDRIVE%%HOMEPATH%
      SET CWOLDPATH=%PATH%
      SET PATH=%CWRSYNCHOME%\BIN;%PATH%
      REM ***
      set OPCOES1=-ravzp --update --progress --delete -e ssh
      set OPCOES2=-ravzp --update --progress -e ssh
      set OPCOES3=-av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com
      REM *****************************************************
      REM *** Criar a pasta BACKUP no HD Externo
      cd i:
      md BACKUP
      REM *****
      rsync -ravzp --update --progress --delete -e ssh /cygdrive/e/Documentos/ /cygdrive/i/BACKUP/Documentos
      REM Vejam que troquei as opções do rsync pelo OPCOES1
      rsync %OPCOES1% /cygdrive/e/Imagens/ /cygdrive/i/BACKUP/Imagens
      rsync %OPCOES1% /cygdrive/e/Livros/ /cygdrive/i/BACKUP/Livros
      REM *****************************************************
      WAIT 3
      EXIT

      Excluir
    2. Aí está força da comunidade.

      Valeu Ederson!

      Excluir