Tive recentemente a necessidade de configurar algumas máquinas para efetuar a sincronia de uma determinada pasta com outras máquinas e para isso usei o Rsync.
Para quem nao conhece o Rsync é um programa feito pelo mesmo criador do Samba e permite que se faça uma sincronia entre duas ou mais máquinas de forma que possamos copiar todos os arquivos da primeira vez e depois somente os arquivos inexistentes e os que foram modificados.
Isto é excelente, pois nos permite manter duas bases grandes sincronizadas sem que seja necessário transferir todo o conteudo a cada vez que a replicação é feita, diminuindo o tempo de replicação e a banda da rede.
O Rsync te possibilita trabalhar como um daemon standalone ou via inetd || xinetd e para isso se faz necessário configurar o arquivo /etc/rsyncd.conf, criar um usuario para replicação e colocar a senha em /etc/rsync.secrets, mas não acho que é a melhor forma pois dependemos do daemon e se este cair por algum motivo ou se a maquina for reiniciada e esquecermos de levantar o processo a replicação para e daí já era …
A melhor forma é fazermos via Tunelamento utilizando o SSH, assim a senha não passa entre as máquinas em formato texto plano e não precisamos de um daemon (rsyncd) rodando, mas como tudo na vida isto tem um porém: a tranfência se dá na velocidade de um SCP e não de um FTP (como no primeiro modo), pois os dados são tunelados pelo SSH, mas como iremos trasnferir somente o que foi alterado, vale a pena.
Vamos lá:
Crie um usuario e um grupo para a sincronia nas duas maquinas:
#> groupadd “nome-do-grupo”
#> useradd -g “nome-do-grupo” -d /home/”nome-do-user” “nome-do-user”
#> passwd “nome-do-user”
Na pasta que será sincronizada (nas duas maquinas) mude o grupo para o grupo do usuario e de permissao de leitura para ele (recursiva):
#> chgrp -R “nome-do-grupo” “pasta-da-sincronia”
Agora eleja uma das maquinas, normalmente a que é de desenvolvimento ou a de backup, para rodar o Script de Sincronia via Cron e de os comandos abaixo como sendo o usuario que fará a sincronia.
#> ssh-keygen -t dsa -f ~/.ssh/login_dsa
Após este comando ele solicitará que entre com a sua “passphrase” e você deve deixar em branco … não digite nada … caso contrário será necessário digitar uma senha para o Script funcionar.
#> cat ~/.ssh/login_dsa.pub | ssh nome-do-user@IP-da-outra-maquina ‘cat – >> ~/.ssh/authorized_keys’
Irá exportar sua chave pública para a outra máquina, pois o tipo de criptografia escolhida foi DSA (de chaves pública e privada).
#> cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Insere sua chave pública no seu chaveiro.
OK…
A partir deste ponto já é possivel fazer ssh sem senha, pode testar!!
Agora crie o Script que vai para o Cron. Abaixo tem um exemplo de um que uso:
Script:
##################################################
## Leandro Godoy
## Inicio da Copia Completa!!
## Data: 30/06/06
LOG=”/home/usuario/Scripts/log.rsync”
echo “Inicio da copia via rsync!!” > $LOG
date >> $LOG
echo “=====================================” >> $LOG
rsync -avz usuario@IP:Pasta-Origem/ /Pasta-Destino/ >> $LOG
echo “=====================================” >> $LOG
echo “Fim” >> $LOG
date >> $LOG
##################################################
Agora basta colocar no Cron. Abaixo tem exemplo de entrada para rodar o Script a cada 5 minutos.
Cron:
0-59/5 * * * 1-5 /home/usuario/Scripts/replica_rsync.sh
NO MAC:
Aqui vai um link interessante de como fazer backup no Mac via Rsync;
Abraços
Filed under: Dica,Gnu/Linux,Security
Trackback Uri


Loading...
Últimos Comentários