sexta-feira, 14 de junho de 2013

Backup incremental com rsync

Para fazer backup de forma eficiente a fim de sincronizar duas pastas, HD externo ou mesmo um backup remoto local o rsync é a solução ideal para isto.

Para instalar o rsync, procure pelo pacote "rsync" no seu gerenciador de pacotes. 

Você deve informar o diretório de origem e o diretório de destino, para onde os arquivos serão copiados. 
$ rsync -av /home/nando/docs/ /mnt/dados/backup/

A opção "-a" preserva todas as permissões de arquivos e também faz copia recursivamente e o -v serve para ver os nomes dos arquivos que estão sendo copiados.

Exemplo da saída do  backup feito

$ rsync -av /home/nando/docs/ /mnt/dados/backup/ 
sending incremental file list 
./ 
Acesso remoto vnc com tightvnc com desktop xfce4.odt 
Chat do facebook via pidgin sem precisar abrir o navegador.odt 
Conversão completa de videos  no Linux 2012.odt 
Criando e reproduzindo playlist de musicas.odt 
Criando pasta criptografadas com Cryptkeeper .odt 
Desktop Remoto no Linux.odt 
Gravado e ripando mídia de Blu-Ray no GNU-Linux.odt 
Importar registros pra oobase.odt 

sent 5479040 bytes  received 186 bytes  10958452.00 bytes/sec 
total size is 5477423  speedup is 1.00

Importante:
O uso da barra ( / ) no final do nome dos diretórios de origem e destino é importante dentro da sintaxe do rsync para a correta copia do que foi especificado.

Caso você tenha apagados arquivos por engano ou formatado a partição deste que o backup não esteja armazenado nesta partição para recuperar os dados, você deve inverter a ordem dos diretórios no comando, sendo o diretório do backup a origem e a diretório original seja o destino conforme exemplo abaixo. 
$ rsync -av /mnt/dados/backup/  /home/nando/docs/ 

Exclusão de arquivos desnecessário que estão no backup

No diretório /home/nando/docs/ foi deletado o arquivo  “Processador Amd Sempron 145 2.8ghz.pdf” propositalmente e criado o arquivo “xubuntu 12.10 usando.txt ”


$ rsync -av --delete /home/nando/docs/ /mnt/dados/backup/
sending incremental file list 
./ 
deleting Processador Amd Sempron 145 2.8ghz.pdf 
xubuntu 12.10 usando.txt 

sent 192553 bytes  received 34 bytes  385174.00 bytes/sec 
total size is 5931013  speedup is 30.80

O "--delete" faz com seja apagados no diretório usado para backup todos os arquivos que foram apagados também no diretório original, ficando uma cópia fiel. Se o objetivo é fazer com que o backup mantenha  arquivos antigos  você não deve usar a opção --delete, de forma que você possa recuperá-los posteriormente.


Notas:
O rsync é ótimo para fazer backup incremental e também existe um ótima gui gráfica pra o mesmo com o nome de grsync em gtk, não é necessário ter o gnome e suas libs instaladas.




Sistema de arquivos usado pelo Windows


Um detalhe importante do rsync e que para copiar arquivos para partições ou disco formatado em FAT16, FAT32 ou NTFS não use o flag -a no rsync pois este flag somente deve ser usado com sistema de arquivos do GNU/Linux, pois caso seja usado os arquivos não serão gravados em sistema de arquivo Windows sendo exibido a seguinte linha para cada arquivo a ser copiado:
rsync: chgrp "caminho-destino.nome-do-arquivo failed: Operation not permitted (1)

Para copiar subdiretórios ou seja recursivamente para partições Windows, você deve usar o flag -r (recursivamente), então os flags deve ser -vr para gravar em sistema de arquivos Windows.
O flag -a já faz copia recursivamente e preserva todas as permissões de arquivos e por isto somente funciona com sistema de arquivos do GNU/Linux.

Para ajuda: rsync --help e man rsync

O rsync pode ser utilizado com o samba ou com o ssh remotamente também.

Um comentário: