Você está na página 1de 4

Transferindo arquivos com o rsync [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=338

Transferindo arquivos com o rsync


Autor: Fbio Berbert de Paula <fberbert at gmail.com> Data: 17/08/2003 Introduo Antes de iniciarmos o artigo, vamos imaginar um cenrio onde voc programou um mega portal que possui centenas de arquivos que somados ocupam cerca de 300 MB em disco rgido. Existem duas cpias do portal, uma no seu desktop de trabalho e outra no servidor Linux em produo. Certo dia voc resolve fazer uma baita reforma no site e passa uma poro enorme de tempo alterando seus scripts PHP, HTML, folhas de estilo, imagens e tudo mais que se possa imaginar e agora precisa atualizar a nova verso offline com a verso que existe no servidor em produo. O grande problema que voc passou horas programando e j no recorda quais arquivos foram alterados. E agora, que soluo te vem cabea? Enviar os 300 MB por FTP para o servidor? Ou passar outro bocado de horas selecionando os arquivos que voc "lembra" que alterou e fazendo seu upload um a um? Que nada, isso um mrtir exclusivo para usurios de Windows. Quem programa em desktops Linux e claro, hospeda seus projetos em servidores Linux pode contar com a ferramenta dos sonhos, o rsync.

O que diabos rsync


Rsync, como o nome sugere, um programa que sincroniza remotamente os dados entre duas mquinas. Por ser baseado no antigo rcp (remote copy), o software herdou as propriedades de criptografia do protocolo SSH, o que torna sua transmisso de dados mais segura que o FTP. Alm das propriedades de segurana, o rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois so trocados entre os servidores somente as diferenas entre dois grupos de arquivos. Voltando ao nosso estudo de caso introdutrio, se alteramos uma dzia de arquivos numa poro de centenas, ao executar um rsync do seu desktop para o servidor, somente os arquivos alterados sero enviados por upload e voc ainda no corre o risco de algum espertinho utilizando um sniffer1 na rede capturar sua senha de FTP em plain text.
1 - sniffer um tipo de software utilizado para capturar pacotes que trafegam pela sua rede.

Resumindo, existem pelo menos quatro situaes onde o rsync pode te ajudar: copiando (ou sincronizando) arquivos entre dois diretrios locais;

1 de 4

22/4/2013 18:01

Transferindo arquivos com o rsync [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=338

copiando (ou sincronizando) arquivos de sua mquina local para um servidor remoto; copiando (ou sincronizando) arquivos de um servidor remoto para sua mquina local; listando os arquivos de um diretrio no servidor remoto (como um "remote ls").

Download e instalao Rsync quase que um pacote default em todas as distribuies. Aquelas que no o instalam numa instalao do tipo bsica, com certeza possuem o pacote em algum lugar em seus CDs de instalao. Consulte os mesmos para maiores informaes. Como utilizo a distribuio Debian, a instalao do mesmo se faz com apenas um comando: # apt-get install rsync Se voc preferir, pode obter o software direto na fonte. Seu site oficial : http://rsync.samba.org E seu download pode ser obtido em: ftp://rsync.samba.org/pub/rsync

Para a comunicao entre duas mquinas com rsync funcionar, ser necessrio: o programa rsync instalado em ambas as mquinas; o servidor SSH (sshd) rodando no servidor. Nota: se a comunicao for bilateral (ambas as mquinas enviam e recebem arquivos) o servio SSH precisar estar rodando em ambas as mquinas.

Formas de uso Para cada situao anteriormente citada, o rsync apresenta uma sintaxe levemente diferente. Vamos dar uma conferida em cada uma delas.

Sincronizando diretrios locais


Uso: rsync [opes] origem destino Voc tem um diretrio recheado com arquivos importantes e deseja manter uma cpia fiel do mesmo em

2 de 4

22/4/2013 18:01

Transferindo arquivos com o rsync [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=338

outra localidade. Para copiar /home/fabio/artigos para para /var/backups/artigos, executamos: $ rsync -Cravzp /home/fabio/artigos/ /var/backups/artigos/ Nota: supondo que /var/backups/artigos est criado e tenho permisses de escrita no mesmo. Costumo utilizar a seqencia de opes Cravzp por considerar que nelas esto inclusas todas as funcionalidades que necessito. Voc pode optar em confiar cegamente em minhas palavras ou dar uma breve conferida na pgina de manual do software (man rsync) para descobrir o significado de cada opo.

Sincronizando arquivos locais para um servidor remoto


Um pr-requisito para enviar seus arquivos para o servidor remoto possuir uma conta de usurio no sistema. Sendo assim, sua forma de uso : rsync [opes] origem usuario@host:destino Supondo que o diretrio /var/backups/artigos est localizado no servidor remoto cujo endereo IP 10.0.0.5 e minha conta de usurio possui login "fabio", executamos: $ rsync -Cravzp /home/fabio/artigos/ fabio@10.0.0.5:/var/backups/artigos/ Surgir um prompt de senha, digite-a e pronto, os arquivos sero copiados.

Sincronizando arquivos do servidor para sua mquina local


Esta situao tambm requer um login para autenticao no servidor, a menos que o mesmo esteja configurado para aceitar conexes de usurios guest, fato comum em servidores mirrors, porm este assunto est fora do escopo do artigo. Se voc entendeu como funciona o comando anterior, basta inverter a ordem dos parmetros: $ rsync -Cravzp fabio@10.0.0.5:/var/backups/artigos/ /home/fabio/artigos/

Listando arquivos do servidor


Esta forma de uso mais simples do rsync e seu pr-requisito o de possuir login de autenticao no servidor

3 de 4

22/4/2013 18:01

Transferindo arquivos com o rsync [Artigo]

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=338

(ou guest). Sintaxe: rsync [opes] usuario@host:diretorio Se voc deseja listar o diretrio /etc do servidor, pode usar o comando: $ rsync -Cravzp fabio@10.0.0.5:/etc/ O "pulo do gato" dessa situao a omisso do diretrio de destino. Bom, chegamos aos finalmentes. Se o seu provedor ainda no possui rsync instalado em seus servidores Linux, faa lobby, esperneie e em ltimo caso, mostre este artigo ao departamento de suporte tcnico do mesmo. Um belo caso de grande utilidade do rsync o prprio Viva o Linux. Mantenho o site atualizado atravs deste software e se meu provedor no tivesse rsync, com certeza eu teria procurado outro. E o pensamento do dia: "FTP coisa de cliqueiro, j era. FTP = (F)oi-se o (T)empo (P)eixe!". []'s, Fbio Berbert de Paula

http://www.vivaolinux.com.br/artigo/Transferindo-arquivos-com-o-rsync Voltar para o site

4 de 4

22/4/2013 18:01