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.
Para que o Linux possa transferir os arquivos para o Windows através do cliente rsync, é necessário que os dois sistemas possuam usuários iguais para realizar essa tarefa. No Windows, o usuário pode ser local ou do domínio e é necessário a criação de um arquivo que será lido no momento que o cliente solicita a transferência.
Esse arquivo é o passwd (também será necessária a criação de um arquivo group que será mostrado mais adiante).
No Linux, a criação do comando pode ser a convencional, através do adduser.
No Windows, crie um usuário local através do painel de controle e atribua uma senha qualquer (a senha não será requerida em nenhum momento).
Em nosso exemplo foi criado tanto no Linux quanto no Windows um usuário chamado "teste". Depois de criados os usuários, partimos para a parte mais importante dessa tarefa que é a criação dos arquivos passwd e group.
No Windows:
Clique em iniciar > Executar > digite CMD (enter). Em seguida no prompt de comando do Windows, digite:
cd \ (enter) cd ICW\bin (enter) (partindo do princípio de que foi instalado em c:\icw)
Em seguida digite os seguintes comandos que estão dentro de c:\ICW\bin
Esses comandos basicamente irão ler a base local de usuários e grupos do Windows e ao mesmo tempo vão direcionar a saída para os arquivos passwd e group para o diretório C:\ICW\etc.
[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.
[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.