Fico vendo por aí a dificuldade que o pessoal tem para fazer um
rsync sem senha (relação de confiança entre chaves RSA bla bla bla) no entanto é uma coisa tão simples que resolvi explicar no meu site:
e agora aqui.
Criando o arquivo rsyncd.conf
Partimos do princípio que você já tem o rsync instalado e já esta rodando nas máquinas (comando "rsync --daemon" e depois dê um "ps auxw |grep rsync" só para conferir). No servidor que vai RECEBER (neste caso é o IP 192.9.200.254) os dados a serem repassados pelo rsync. Vamos criar o arquivo
rsyncd.conf dentro de /etc com o seguinte conteúdo:
# vim /etc/rsyncd.conf
[raiz]
path = /
uid = root
read only = no
hosts allow = 192.9.200.251/32
Não entendeu, né? Então vamos as explicações:
[raiz] --> Está diretamente relacionado dom o termo path. Esse "raiz" entre colchetes é como se fosse um alias para o local do disco da máquina que vai receber os arquivos, ou seja, o nome entre colchetes tanto faz, desde que esteja entre colchetes.
path --> Define o caminho que será disponibilizado ao rsync para sincronismo. No meu exemplo acima, usei o diretório raiz do sistema, / (poderia ter colocado qualquer outro).
uid --> Define o usuário com qual a conexão/execução poderá ser executada. Sugiro sempre colocar root.
read only --> Essa opção define se poderá ou não escrever arquivos dentro do local "compartilhado" pelo rsync; se você quer escrever arquivos dentro do local (o que motivou o desenvolvimento deste howto) essa opção deverá ficar = no.
hosts allow --> endereços de IP, faixas de rede que tem permissão para acessar e gravar no local especificado; no meu caso, utilizei o 192.9.200.251/32, um único host.
Depois de criar o arquivo, inicie o daemon do rsync com o comando:
# rsync --daemon
Entendido acima passe para o próximo passo.
Enviando arquivos
Essa é a parte que muita gente agarra. Vamos agora para a máquina que enviará os dados para a que acabamos de configurar o rsyncd.conf (no meu exemplo, o IP
da maquina que vai enviar arquivos é a 192.9.200.251 e a que vai receber 192.9.200.254). Essa máquina também deverá ter o rsync instalado, mas não precisa
necessariamente estar rodando. Então atenção para ao seguinte comando:
# rsync -av /home 192.9.200.254::raiz/home
# rsync opcoes diretorio ip::expressão_do_path/diretorio
No exemplo de comandos acima eu sincronizei todo o conteúdo da pasta '/home' para o '/home' da máquina onde configurei o rsyncd.conf (192.9.200.254).
ATENÇÃO! TEM QUE COLOCAR os 2 ":" (::), porque senão vai pedir senha e de nada adiantou o nosso esforço.
Se você está lidando com algum diretório onde os arquivos mudam de nome, ou coisa do tipo, e não que que o servidor de destino fique com arquivos que não estão mais no servidor fonte, basta acrescentar o parâmetro '--delete' no final do rsync:
# rsync -av /home 192.9.200.254::raiz/home --delete
Você também pode ignorar alguns diretórios caso você não os queira:
# rsync -av /home 192.9.200.254::raiz/home --exclude=/home/local/backup
Obs.: O rsync utiliza a porta 873 TCP para transferir os arquivos então essa porta deverá estar liberada para que possa ocorrer a transferência dos arquivos.
"Deve-se aprender sempre, até mesmo com um inimigo." - Isaac Newton
Atenciosamente,
Saul Figueiredo
Analista FreeBSD/Linux
Analista de Redes
Linux Professional Institute Certification Level 1
www.pinguimteajuda.com.br