Rsync, Excelente utilitário para copia e sincronização de Backups

  • É eficaz copiar e sincronizar arquivos para ou a partir de um servidor remoto.
  • Permite cópia de links, propriedades de arquivos como utilizador, grupos e permissões.
  • É mais veloz do que o scp ( Secure Copy ), porque rsync usa protocolo de atualização remota que permite transferir apenas as diferenças entre dois conjuntos de arquivos. Na primeira vez, ele copia todo o conteúdo de um arquivo ou um diretório de origem para o destino, mas na próxima vez, ele copia apenas os blocos alterados e bytes para o destino.
  • Rsync consome menos banda , uma vez que usa o método de compressão e descompressão durante o envio e recebimento de dados em ambas as extremidades.

        VÁRIAS OPÇÕES DO COMANDOS RSYNC

  1. -V:verbose
  2. -R:cópias de dados de forma recursiva (mas não preservam timestamps e permissão durante a transferência de dados
  3. -A:modo de arquivamento, o modo de arquivo permite a cópia de arquivos de forma recursiva e preserva links simbólicos, permissões de arquivos, posses utilizador e grupo e timestamps
  4. -Z:arquivos serão comprimidos
  5. -H:legíveis, saída em um formato legível

COMO COPIAR / SINCRONIZAR ARQUIVO E DIRETÓRIO NUM SERIDOR LOCAL COM RSYNC

Este comando vai sincronizar um único arquivo em uma máquina local.  neste exemplo, o arquivo host.pid é copiado/ sincronizado para o diretório /backup/meusbackups

rsync -zvh /var/lib/host.pid /backup/meusbackups
created directory backup/meusbackupssent 75 bytes received 31 bytes 212.00 bytes/sec
total size is 6 speedup is 0.06

Neste exemplo acima, pode ver que, se o destino não existe o rsync cria um diretório automaticamente.

COPIAR / SINCRONIZAR UM DIRETÓRIO NUM SERVIDOR LOCAL
O comando abaixo irá transferir ou sincronizar todos os arquivos de um diretório para outro diretório na mesma máquina

rsync -avzh /home/imagens /backup/imagens/
sent 60.03K bytes received 244 bytes 120.54K bytes/sec
total size is 83.03K speedup is 1.38

Este comando irá copiar/sincronizar um diretório a partir de um servidor local para um servidor remoto.2. COPIAR / SINCRONIZAR ARQUIVOS E DIRETÓRIO COM UM SERVIDOR LOCAL E OUTRO REMOTO
Pode copiar do servidor onde estão os dados a copiar para outro servidor onde vai ficar a copia ou copiar a partir do servidor onde vai ficar a copia.

rsync -avz /backup/cpbackup/daily/  root@meuservidor.com:/backup/cpbackup/daily

Agora o contrário COPIAR / SINCRONIZAR UM DIRETÓRIO REMOTO PARA UM SERVIDOR LOCAL

rsync -avz root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

3. USAR O RSYNC JUNTO COM O SSH

Com rsync, podemos usar o SSH ( Secure Shell ) para transferência de dados, usando SSH durante a transferência de dados eles estarão mais seguros.
Para determinar um protocolo com rsync usamos o parametro ” -e “. Neste exemplo, vamos utilizar ” ssh .

rsync -avzhe ssh  root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

AGORA AO CONTRÁRIO, COPIAR UM ARQUIVO DE UM SERVIDOR LOCAL PARA UM SERVIDOR REMOTO COM SSH

rsync -avzhe ssh /backup/cpbackup/daily/ root@meuservidor.com:/backup/cpbackup/daily

4. MOSTRAR PROGRESSO NA TRANSFERÊNCIA DE DADOS COM RSYNC

rsync -avzhe ssh –progress root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

5. USAR A OPÇÃO –INCLUDE E –EXCLUDE
Estas duas opções permitem incluir e excluir arquivos de uma copia/sincronização.

Neste exemplo, o comando rsync irá incluir arquivos e diretórios apenas que começam com ‘ M ‘ e excluir da copia todos os outros arquivos e diretórios no destino.
rsync -avze ssh –include ‘m*’ –exclude ‘*’

root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

6. USO DE OPÇÃO –DELETE
Podemos usar ‘ —delete‘ para apagar os arquivos no destino que não existem no diretório de origem.

rsync -avz –delete root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

PODE DEFINIR O TAMANHO MÁXIMO DOS ARQUIVOS QUE SERÃO TRANSFERIDOS
Pode especificar o parâmetro “–max-size” para definir o tamanho máximo do arquivo.
Exemplo: Um arquivo de 20GB , com este comando irá transferir apenas os arquivos que são iguais ou menores que 20GB .

rsync -avzhe ssh –max-size=’20GB’  root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

7. APAGAR AUTOMATICAMENTE ARQUIVOS DA ORIGEM APÓS A TRANSFERÊNCIA BEM SUCEDIDA
Vamos imaginar que tem um servidor de sites e um servidor de backups, o servidor de backups faz um backup diário, mas não quer manter essa cópia local do backup no seu servidor de sites.
Pode fazer a exclusão automática usando a opção ” –-remove-source-files” .

rsync –remove-source-files –zvh  meusite.tar.gz  root@meuservidor.com:/backup/

USAR O PARÂMETRO –DRY-RUN COM O RSYNC
Usando esse parâmetro o Rsync não vai fazer nenhuma alteração no destino, apenas vai mostrar o resultado do comando normalmente, assim fica fácil você encontrar algum erro e não correr o risco de fazer uma cópia desastrada.

rsync –dry-run –remove-source-files –zvh meusite.tar.gz  root@meuservidor.com:/backup/

10. DEFINIR LIMITE DE BANDA DE TRANSFERÊNCIA DE ARQUIVOS
Podemos configurar o limite de banda durante a transferência dos arquivos de um servidor para outro usando o ‘ —bwlimit’.

rsync –bwlimit=500 -avzhe ssh root@meuservidor.com:/backup/cpbackup/daily/  /backup/cpbackup/daily

Rsync utilizando SSH em porta diferente da default  (22)

rsync -auvzh –rsh=’ssh -p2222′ arquivolocal root@seuservidor.com:/caminho/para/o/arquivoremoto

Ainda existem outras opçoes para configurar o Rsync como um outro serviço tanto local como remoto, mas estas são as mais utilizadas.




Top