Implantando rsync server no Windows para conexões via Linux

Esse procedimento tem como objetivo principal sanar uma necessidade que pode ser encontrada quando temos que efetuar backup, via rsync, de um servidor Linux para um servidor Windows. Resolvi postar dessa forma pois encontramos a necessidade em nosso ambiente e depois de alguns testes chegamos ao resultado esperado.

[ Hits: 54.464 ]

Por: rafael vieira martins em 29/06/2010


Rsyncd.conf



Depois de criados os usuários no Windows e no Linux, partiremos para uma configuração básica no arquivo rsyncd.conf.

Acesse C:\ICW\rsyncd.conf (caso não tenha alterado o local padrão de instalação o local será c:\arquivos de programas\ICW).

Abra o arquivo com o bloco de notas do Windows e acrescente as linhas que não existirem.

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log

# usuários e grupos com permissão. Os dois criados em ambos os sistemas
uid = teste
gid = administradores

# c:\work equivale a /cygwin/c/work
# mapeamentos dos diretórios para onde serão transferidos os arquivos.
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes

O diretório c:\work deverá ser criado e seu alias será [test]. Outros diretórios podem ser mapeados afim de se ter uma organização maior em relação ao backup.

Colocando em prática

Depois de configurados usuário e grupo, e definidos os mapeamentos, efetuaremos um teste de transferência via rsync do Linux para o Windows.

Exemplo:

rsync -Cravz --chmod=u=rwx,g=rx,o=rx --progress --partial --delete-excluded arquivos/ rsync://10.21.194.115/test
sending incremental file list
./
arq2  498 100%    0.00kB/s    0:00:00 (xfer#1, to-check=3/5)
arq3  498 100%   97.27kB/s    0:00:00 (xfer#2, to-check=2/5)
arq4  498 100%   37.41kB/s    0:00:00 (xfer#3, to-check=1/5)
teste   0 100%    0.00kB/s    0:00:00 (xfer#4, to-check=0/5)
sent 1095 bytes  received 87 bytes  2364.00 bytes/sec
total size is 1494  speedup is 1.26

Reparem que o usuário que realiza a transferência é o mesmo usuário que foi criado no Windows para que não hajam problemas de permissão.

No exemplo acima, utilizamos o rsync de modo que o próximo backup seja incremental e sincronizando um diretório chamado "arquivos" para dentro do diretório "test", que equivale ao diretório c:\work no Windows.

Mais informações sobre como utilizar o rsync podem ser encontradas nesse artigo: Transferindo arquivos com o rsync

Esse tipo de transferência via rsync não utiliza o serviço ssh para autenticação e criptografia. Nesse caso não temos a segurança das informações no momento da cópia. Esse método foi implantado em um ambiente onde houve a necessidade de utilizar o serviço dessa forma. Quem optar por implantar essa solução deverá estar ciente de que a segurança deve ser provida de acordo com o nível de criticidade de seu ambiente.

Conclusão

Com essa solução espero ter contribuído com quem possui um ambiente semelhante em produção. De certa forma torna-se uma implantação simples para aqueles que não dispõem de disponibilidade, tornando-se uma solução rápida e eficiente.

Nesse fórum já temos procedimentos relacionados a uma situação semelhante, porém onde ocorre o contrário. Segue o procedimento inverso (e mais comum): Utilizando o RSYNC para fazer backups de servidores e estações Windows

Grato a todos e até a próxima!

Página anterior    

Páginas do artigo
   1. Instalação
   2. Criando os usuários
   3. Rsyncd.conf
Outros artigos deste autor

Assinatura e criptografia de dados com GPG

Leitura recomendada

Criando wallpapers animados para o Enlightenment 17

Instalação do APT no SuSE 9.3

Backup com Rsync

Apache + Virtual Host + DNS no Debian Lenny

Quota - Criando e administrando no CentOS

  
Comentários
[1] Comentário enviado por felipe_sama em 29/06/2010 - 17:07h

Olá Rafael, você poderia me informar se as permissões dos arquivos são mantidas se eu precisar voltar com os arquivos no windows?

[2] Comentário enviado por JuandePaula em 29/06/2010 - 17:15h

Rafael, obrigado pelo artigo.
Vou implantar no meu Servidor.

Preciso fazer bkp para storage remoto.

Vlw.

Juan de Paula
Gerente de TI

[3] Comentário enviado por rafaelvieira em 30/06/2010 - 09:38h

Olá Felipe, no caso das permissões ocorre o seguinte.

Como o Windows tem um esquema de permissões diferente do Linux. Quando os arquivos forem transferidos para o Windows, é como se eles estivessem sendo criados naquele momento por um usuário, portanto ele herdará as permissões padrões do Windows independente de como esta no linux. Quando houver o restore, as permissões serão as nativas do linux como se os arquivos estivessem sendo criados naquele momento. De acordo com a UMASK definida no sistema.

Grato.!

[4] Comentário enviado por geovaneroberto em 03/12/2011 - 11:53h

Boa tarde!

Olá Rafael, eu estou tentando utilizar este tutorial seu mas da erro de conexão.

geovane@localhost:/home$ rsync -Cravz --chmod=u=rwx,g=rx,o=rx --progress --partial --delete-excluded arquivos/ rsync://192.168.0.133/test
rsync: failed to connect to 192.168.0.133: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(122) [sender=3.0.7]
geovane@localhost:/home$

Instalei a versão cwRsyncServer_4.0.6_Installer no windows7, e o linux que estou tentando usar é o debian.

Pode me ajudar?

Abraço

[5] Comentário enviado por geovaneroberto em 03/12/2011 - 12:39h

Rafael!

Achei o problema era no user e senha do win, porém toda vez que rodo o comando ele deleta o conteudo da pasta e não faz o sincronismo, o que acha que pode ser?


geovane@localhost:~$ rsync -Cravz --chmod=u=rwx,g=rx,o=rx --progress --partial --delete-excluded arquivos/ rsync://192.168.0.133/test
sending incremental file list
./
deleting Nova pasta/
deleting Nova pasta (2)/

sent 48 bytes received 11 bytes 10.73 bytes/sec
total size is 0 speedup is 0.00
geovane@localhost:~$

Ele sempre deleta e nao copia do linux -> windows e nem windows -> Linux.

=(

[6] Comentário enviado por rafaelvieira em 06/12/2011 - 11:16h

Ola Geovane, eu tenho um servidor linux efetuando esse procedimento atualmente para um Server 2008 R2, e esta funcionando perfeitamente.

O que ele faz nesse comando, é um backup incremental, portanto ele atualizara o conteudo do diretório no windows de acordo com o diretorio de origem. Por exemplo se na hora que estiver rodando o comando, nao existir nenhuma pasta ou arquivo no diretorio no linux ele vai sincronizar o windows e remover tbm.

Faça um teste básico.

Crie 3 arquivos de texto no linux e efetue o rsync. (Veja se copiou)
Modifique os tres no linux e efetue pra ver se sincronizou. (verifique se alterou)
Modifique os tres no windows e efetue o rsync pra ver se sincronizou.
Delete os tres no Linux e efetue o rsync.

Apenas com esses testes podemos identicar o problema ai no seu ambiente.

Abs.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts