A mágica do rsync 11/Abr/2008
Posted by demoncyber in utilitarios.Tags: rsync, tutorial
trackback
A mágica do rsync
Este artigo apresenta o aplicativo rsync e algumas dicas de como utiliza-lo. Vamos lá!
Rsync de acordo com o wikipedia
“rsync is a software application for Unix systems which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate. An important feature of rsync not found in most similar programs/protocols is that the mirroring takes place with only one transmission in each direction. rsync can copy or display directory contents and copy files, optionally using compression and recursion” – Wikipedia sobre Rsync
Ok, mas porque rsync é uma solução mais interessante do que copiar os arquivos na mão e quais são as suas vantagens?
- A sua compressão e o algoritmo de transferência delta-transfer aumenta o desempenho para as transferências
- Pode manter todo as permissões do arquivo
- Pode se utilizar de uma transfêrencia de arquivos segura ( via ssh)
Como faço para instalar?
Acesse a página do projeto e baixe o seu código fonte e compile . http://rsync.samba.org/download.html, ou você pode se utilziar de algum pacote pronto para o seu sistema operacional. Atualmente é dificil encontrar algum sistema operacional baseado no UNIX que não traga essa mágica ferramenta por padrão. Em nosso caso vamos tratar da instalação sendo feita em um Debian lenny:
apt-get install rsync
Certo mas como configurar o daemon do rsync?
Bom o rsync tem um arquivo de configuração padrão chamado rsyncd.conf que fica dentro do diretório /etc. Segue um modelo de estrutura do arquivo:
- Ocultar texto das mensagens anteriores -
#/etc/rsyncd.conf
#Opções Globais
uid = nobody
#habilita para usar um usuário com permissões mínimas chamado nobody
gid = nobody
#habilita para usar um grupo com permissões mínimas chamado nobody
motd file = /etc/rsyncd.motd
# arquivo de mensagem do dia quando logar para a transfêrencia de arquivo
log file = /var/log/rsyncd.log
# arquivo de log de copias e do sistema
pid file = /var/run/rsyncd.pid
# arquivo que mantém o pid do daemon
lock file = /var/run/rsync.lock
#arquivo de trava criando para não abrir vários processos do rsync
use chroot=yes
# habilita o uso do change root o que dá um nível mais alto de segurança a cópia do arquivo que está sendo executada
#Opções Globais
#Opções dos caminhos
[nome_do_meu_caminho_compartilhado]
# Nome dado a especificação do caminho compartilhado
path = /rsync_files_here
#caminho compartilhado
comment = Meu diretório comparilhado pelo Rsync
# comentário sobre o caminho compartilhado
read only = yes
# especifica se o compartilhamento é somente para leitura
list = yes
# habilita a listagem do módulo
auth users = username
#Opções dos caminhos
# Fim arquivo /etcrsyncd.conf
O que é mais necessário além de um bom arquivo comentado para explicar o funcionamento?
Para rodar o daemon do rsync depois do arquivo de configuração pronto somente é necessário usar o parametro –daemon.
rsync –daemon
Estrutura do comando para utilização:
rsync [opções] origem destino
Agora vamos a nossa coleção de mágicas
Sincronia de diretório local: rsync -ravzp /home/usuario/ /home/bkp/
Sincronia de arquivos locais para um servidor: rsync -ravzp /home/usuario/ usuario@192.168.0.5:/home/bkp/
Sincronia de arquivos do servidor para uma maquina local: rsync -ravzp usuario@192.168.0.5:/home/bkp/ /home/usuario/
Listando o diretório: rsync -ravzp usuario@192.168.0.5:/home/bkp/
-r recursivo
-a mantém a estrutura de forma idêntica
-v modo de verbose o qual apresentada os dados do que está sendo executado
-z comprime o arquivo durante a transferência ( aumenta a velocidade de cópia )
-p preserva as permissões
Mais explicações sobre os parâmetros pode-se encontrar em man rsync =p
Espero que este Artigo ajude o pessoal a sincronizar os seus projetos, abraços e até a proxima (Demoncyber)
Ferramenta gráfica para sincronização de arquivos grsync
Dados técnicos:
Licença GNU
Porta 873
Site do projeto
http://samba.anu.edu.au/rsync/
Referência:
http://samba.anu.edu.au/ftp/rsync/rsync.html
http://everythinglinux.org/rsync/
http://en.wikipedia.org/wiki/Rsync
http://www.opbyte.it/grsync/
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=338
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=8011
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=882
–
Marco Carvalho de Oliveira
Ciência da Computação – UDESC – Joinville
COLMÉIA – Grupo de Pesquisa em Software Livre
Ajudaria se tivesse dito onde coloco o rsync.conf, na origem ou no destino…
Olá,
Fica na origem do arquivo ( no servidor )
Muito bom o tutorial!
Marco, você saberia dizer se existe algum utilitário ou parametro no rsync que liste quais os arquivos que foram copiados durante a operação?
Eu sei que ele gera essa informação no log mas estava procurando algo que já desse uma listagem simples.
Eu preciso dessa informação para copiar para um terceiro servidor.