GNU Blog Software Livre na EducaçãoMicro Livre

30/01/2012

Inscreva-se no RSS

Fazendo cópia de segurança

Filed under: — admin @ 2:10 pm

Transcrição do artigo de Fábio Berbert de Paula publicado por Viva o Linux

Fonte: http://www.vivaolinux.com.br/artigo/Transferindo-arquivos-com-o-rsync

Transferindo arquivos com o rsync

Voc√™ √© daqueles que ainda usa FTP para copiar arquivos entre duas m√°quinas? Ei cara, j√° estamos no s√©culo XXI, este artigo nos introduz ao mundo do rsync, sin√īnimo de efici√™ncia quando o assunto √© c√≥pia remota.

Introdução

Antes de iniciarmos o artigo, vamos imaginar um cenário onde você programou um mega portal que possui centenas de arquivos que somados ocupam cerca de 300 MB em disco rígido. Existem duas cópias do portal, uma no seu desktop de trabalho e outra no servidor Linux em produção.

Certo dia você resolve fazer uma baita reforma no site e passa uma porção 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 versão offline com a versão que existe no servidor em produção.

O grande problema √© que voc√™ passou horas programando e j√° n√£o recorda quais arquivos foram alterados. E agora, que solu√ß√£o te vem √† cabe√ßa? 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 m√°rtir exclusivo para usu√°rios 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 máquinas. Por ser baseado no antigo rcp (remote copy), o software herdou as propriedades de criptografia do protocolo SSH, o que torna sua transmissão de dados mais segura que o FTP.

Além das propriedades de segurança, o rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois são trocados entre os servidores somente as diferenças entre dois grupos de arquivos.

Voltando ao nosso estudo de caso introdut√≥rio, se alteramos uma d√ļzia de arquivos numa por√ß√£o de centenas, ao executar um rsync do seu desktop para o servidor, somente os arquivos alterados ser√£o enviados por upload e voc√™ ainda n√£o 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 situa√ß√Ķes onde o rsync pode te ajudar:

  • copiando (ou sincronizando) arquivos entre dois diret√≥rios locais;
  • copiando (ou sincronizando) arquivos de sua m√°quina local para um servidor remoto;
  • copiando (ou sincronizando) arquivos de um servidor remoto para sua m√°quina local;
  • listando os arquivos de um diret√≥rio no servidor remoto (como um “remote ls”).

Download e instalação

Rsync √© quase que um pacote default em todas as distribui√ß√Ķes. Aquelas que n√£o o instalam numa instala√ß√£o do tipo b√°sica, com certeza possuem o pacote em algum lugar em seus CDs de instala√ß√£o. Consulte os mesmos para maiores informa√ß√Ķes.

Como utilizo a distribuição Debian, a instalação 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 é:

E seu download pode ser obtido em:

Para a comunicação entre duas máquinas com rsync funcionar, será necessário:

  • o programa rsync instalado em ambas as m√°quinas;
  • o servidor SSH (sshd) rodando no servidor.

Nota: se a comunicação for bilateral (ambas as máquinas enviam e recebem arquivos) o serviço SSH precisará estar rodando em ambas as máquinas.

Formas de uso

Para cada situação anteriormente citada, o rsync apresenta uma sintaxe levemente diferente. Vamos dar uma conferida em cada uma delas.

Sincronizando diretórios locais

Uso: rsync [op√ß√Ķes] origem destino

Você tem um diretório recheado com arquivos importantes e deseja manter uma cópia fiel do mesmo em 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 permiss√Ķes de escrita no mesmo.

Costumo utilizar a seq√ľencia de op√ß√Ķes Cravzp por considerar que nelas est√£o inclusas todas as funcionalidades que necessito. Voc√™ pode optar em confiar cegamente em minhas palavras ou dar uma breve conferida na p√°gina de manual do software (man rsync) para descobrir o significado de cada op√ß√£o.

Sincronizando arquivos locais para um servidor remoto

Um pré-requisito para enviar seus arquivos para o servidor remoto é possuir uma conta de usuário no sistema. Sendo assim, sua forma de uso é:

rsync [op√ß√Ķes] origem usuario@host:destino

Supondo que o diret√≥rio /var/backups/artigos est√° localizado no servidor remoto cujo endere√ßo IP √© 10.0.0.5 e minha conta de usu√°rio 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 ser√£o copiados.

Sincronizando arquivos do servidor para sua m√°quina local

Esta situa√ß√£o tamb√©m requer um login para autentica√ß√£o no servidor, a menos que o mesmo esteja configurado para aceitar conex√Ķes de usu√°rios guest, fato comum em servidores mirrors, por√©m este assunto est√° fora do escopo do artigo. Se voc√™ entendeu como funciona o comando anterior, basta inverter a ordem dos par√Ęmetros:

$ 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 autenticação no servidor (ou guest). Sintaxe:

rsync [op√ß√Ķes] usuario@host:diretorio

Se você deseja listar o diretório /etc do servidor, pode usar o comando:

$ rsync -Cravzp fabio@10.0.0.5:/etc/

O “pulo do gato” dessa situa√ß√£o √© a omiss√£o do diret√≥rio de destino.

Bom, chegamos aos finalmentes. Se o seu provedor ainda n√£o possui rsync instalado em seus servidores Linux, fa√ßa lobby, esperneie e em √ļltimo caso, mostre este artigo ao departamento de suporte t√©cnico do mesmo.

Um belo caso de grande utilidade do rsync é o próprio Viva o Linux. Mantenho o site atualizado através deste software e se meu provedor não 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, F√°bio Berbert de Paula

Nenhum Coment√°rio »

Comente esta p√°gina.

Novo coment√°rioInscreva-me aos seus feeds

Você precisa fazer o login para publicar um comentário.

ÔĽŅ

Software Livre WordPress