Conhecendo o rSync

O rSync (Remote Sync), um utilitário muito útil para realizar cópias e sincronismo de arquivos (e/ou diretórios) localmente ou remotamente. Uma forma simples de fazer becapes completos e incrementais de grandes quantidades de arquivos, ou mesmo partições inteiras, mantendo uma única cópia atualizada de tudo em um HD externo ou num servidor remoto.

[ Hits: 29.863 ]

Por: W. Luís Araújo em 21/07/2014 | Blog: http://br.linkedin.com/in/wluisaraujo


O que é rSync?



O rSync (Remote Sync) é um utilitário para realizar cópias e sincronismo de arquivos (ou diretórios) localmente ou remotamente.

Uma forma simples de fazer becapes completos de grandes quantidades de arquivos, ou mesmo partições inteiras, mantendo uma única cópia atualizada de tudo em um HD externo ou num servidor remoto.

O rSync está disponível para todas as principais distribuições GNU/Linux, como Debian, Ubuntu e CentOS.

O que o rSync faz?

O rSync sincroniza arquivos e diretórios localmente ou remotamente, fazendo uma cópia exata dos arquivos.

Ele permite sincronizar o conteúdo de duas pastas, transferindo apenas as modificações. Ele não trabalha apenas comparando arquivo por arquivo, mas também comparando o conteúdo de cada um.

Se apenas uma pequena parte do arquivo foi alterada, o rSync transferirá apenas ela, sem copiar novamente todo o arquivo.

O comando rsync possui uma grande vantagem, como exemplo o uso do rsync com o parâmetro -u, ele copiará apenas o que mudou na árvore de diretórios. E de um arquivo modificado, ele transferirá apenas os blocos novos ou modificados.

Antes de transferir os dados, faz uma comparação do arquivo na origem e no destino. Os arquivos são quebrados em segmentos e os seus checksums são comparados. Os pedaços cujos checksums forem diferentes, são transmitidos.

Utilização do rSync com principais parâmetros

Os principais parâmetros são:
  • archive
  • recursive
  • update
  • compress
  • verbose
...os quais vão adicionar mais recursos para a verificação do sincronismo.

Resumindo a sintaxe do rsync:

# rsync opções <origem> <destino>

Opções:

-a :: Esta opção (archive) faz com que todas as permissões e atributos dos arquivos sejam mantidos.

Exemplo:

# rsync -a /caminho_origem/arquivo_origem.txt /caminho_destino/

-r :: Esta opção (recursive) realiza a cópia recursiva de um diretório e todo o conteúdo dentro do diretório.

Exemplo:

# rsync -r /caminho_origem /caminho_destino/

-u :: Esta opção (update) realiza a cópia somente de arquivos modificados.

Exemplo:

# rsync -u /caminho_origem/ /caminho_destino/

-v :: Esta opção (verbose) exibe na saída do comando tudo que estiver executando.

Exemplo:

# rsync -av /caminho_origem/ /caminho_destino/

-z :: Esta opção faz a compressão dos dados durante a transferência (e descompactar no destino).

Exemplo:

# rsync -azv /caminho_origem/ /caminho_destino/

-h :: Esta opção exibe uma saída mais legível na saída de comando.

Exemplo:

# rsync -ahv /caminho_origem/ /caminho_destino/

-P :: Esta opção (partial) caso a conexão seja interrompida, quando for reconectado o rsync continua a transferência de onde parou.

Exemplo:

# rsync -P /caminho_origem/ /caminho_destino/

Macetes do rSync

Para realizar um becape completo:

Becape incremental:

A cópia inicial pode demorar um pouco mais do que demoraria uma cópia simples dos arquivos. Mas, a partir da segunda vez que realizar o sincronismo, a operação será muito mais rápida, já que será copiado apenas as mudanças dos arquivos, e não o arquivo por completo.

Exemplo:

# rsync -av /arquivo_origem.txt /caminho_destino/

Becape removendo a origem:

Uma outra possibilidade aplicada na prática de becape, é remover os arquivos da origem da cópia.

Como exemplo: o servidor01 está sendo desativado e seu disco está cheio. É preciso fazer o becape e remover os dados do servidor, pois ele será desativado.

Utilizando o comando rsync com o atributo --remove-source-files após o rSync realizar a transferência dos dados, ele irá realizar uma checagem da integridade dos arquivos no destino (se foi copiado com sucesso) e caso tenha sido copiado com sucesso, ele irá remover o arquivo de origem (de onde foi copiado).

Exemplo:

# rsync -av --remove-source-files /caminho_origem /caminho_destino/

Usando o rSync de forma segura (com SSH)

Ao realizar a cópia de arquivos, utilize a opção -p, que preserva a permissão de dono, grupo e datas de criação e modificação igual ao arquivo de origem.

O rSync pode ser combinado junto ao protocolo do SSH para realizar a cópia remota de arquivos de maneira criptografada com SSH.

Um exemplo de uso do rSync em conjunto com o SSH:

Acrescentamos a opção -e na sintaxe do rsync. Realizando a cópia de dados de um servidor remoto para um diretório local:

# rsync -e ssh root@192.168.1.1:/caminho_origem /caminho_destino

Realizando a cópia de dados de um diretório local para um servidor remoto:

# rsync /caminho_origem -e ssh root@192.168.1.1:/caminho_destino

Perguntas frequentes

- É possível usar o rSync em modo gráfico?
Sim. Para isso, use o Grsync e crie tarefas de cópia e sincronismo via interface gráfica.

- Quais as vantagens de utilizar o rsync?
Realiza cópias exatas de arquivos e diretórios, copiando arquivos de forma mais ágil, devido à compressão, e a verificação que cópia somente arquivos atualizados.

- É compatível com outros sistemas operacionais?
Sim. Compatível com UNIX, GNU/Linux, FreeBSD, e Mac OS, para sistemas operacionais Microsoft.

Em sistemas Microsoft, é possível utilizar programas para auxiliar o uso do rSync como o DeltaCopy, que permite transferir arquivos do Windows para o GNU/Linux, com o rSync.

Referências


   

Páginas do artigo
   1. O que é rSync?
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Backup e restore para iniciantes

Utilizando Ubuntu live-CD/USB para backup com PartImage

Aumentando Resize (Tamanho) do HD Virtual VMDK - Debian 8 Jessie

Clonar HD com o comando pv salvando em .img

Implantando um Servidor de Backup com Bacula - Debian Squeeze

  
Comentários
[1] Comentário enviado por xerxeslins em 21/07/2014 - 00:23h

Eu curti! Nota 10. (li antes de publicar hehe)

[2] Comentário enviado por xerxeslins em 21/07/2014 - 09:14h

Sim, esqueci de dizer. Eu acabei usado esse rsync para sincronizar um diretório com outro do meu servidor de FTP, para testes, e assim colocar um repositório de pacotes Slackware no ar. Muito útil.

[3] Comentário enviado por lenaz em 21/07/2014 - 09:25h

Muito bom ! o rsync possui uma lista de opções imensas (não conheço todas ainda haha)

Mas 2 opções muito interessantes que eu uso (entre outras 7), são:

-p, --perms - preserva as permissões;
-t, --times - preserva a data de modificação;

Com um conjunto de opções bem definidas é possível deixar sua sincronização/backup completamente personalizado ao gosto do adm de rede.

[4] Comentário enviado por wluisaraujo em 21/07/2014 - 11:48h

Obrigado colega, xerxeslins! :D
Colega Lenaz, muito bom tbm o uso destes parâmetros, auxiliam e muito em um becape realizado com sucesso.

[5] Comentário enviado por guimaraesrocha em 21/07/2014 - 19:52h

Conheci o rSync agora, gostei das opções de parâmetros, vou personalizar e usar aqui no meu ambiente. Bom artigo.

[6] Comentário enviado por lleitow em 19/09/2014 - 12:00h

É possível usar Rsync com arquivos do tipo .xva (formato das vms do xenserver), até hoje nunca consegui fazer com este tipo de arquivo.

O rsync funciona com todo tipo de extensão ou somente alguns?

Parabéns pelo artigo ficou muito bom mesmo!

[7] Comentário enviado por luisfeliperm em 03/11/2018 - 01:39h

Gostei muito, excelente!

[8] Comentário enviado por w.luis.araujo em 05/11/2018 - 09:42h

Bom dia, lleitow

É possível utilizar o rsync, para qualquer tipo de arquivo. Segue um exemplo:

$ rsync -Pv /caminho_origem/*.xva /caminho_destino

Obs:
-P (Exibe o progresso da transferência)
-v (Detalhes de verbosidade durante a execução)
/caminho_origem/*.xva (*.xva qualquer nome, que termine (extensão) em .xva


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts