... usando a ferramenta Duplicity
Manter dados críticos salvos em servidores é uma grande responsabilidade para os profissionais que precisam ter soluções para uma situação inesperada, como por exemplo: a perda desses dados. Diante disso, além de conhecer as técnicas de backups (incremental, diferencial e total), é preciso utilizar ferramentas que provenham segurança e integridade na realização do backup. Sendo assim, o Duplicity é uma ferramenta que oferece o método de backup incremental encriptando os dados a serem armazenados. Ele usa algoritmos da ferramenta rsync no método de sincronismos de dados, como o librsync; e o GnuPG para encriptar os dados. Nesse tutorial, será descrito como realizar um backup incremental no Linux usando a ferramenta Duplicity.
CONTEXTUALIZAÇÃO
A diferença basicamente entre os três tipos de backups (incremental, diferencial e total) é a seguinte:
- TOTAL - Backup full, todos os arquivos são copiados. Sempre o primeiro backup é desse tipo. Posteriormente ao backup TOTAL é utilizado o Diferencial ou Incremental.
- DIFERENCIAL - É executado após o último backup FULL, ele realiza backup apenas dos arquivos alterados, em sua primeira execução. Posteriormente, ele irá realizar o backup dos arquivos que foram alterados após o último backup FULL mais os arquivos que foram alterados depois do último backup Diferencial.
- INCREMENTAL - Realiza backup somente dos arquivos novos ou modificados desde a última execução do backup.
Mais Informações
INSTALAÇÃO
Para instalar o Duplicty no Debian e seus derivados (Ubuntu ou Mint):
sudo apt-get install duplicity python-paramiko
Para instalar no FEDORA:
sudo yum install duplicity python-paramiko
UTILIZANDO A FERRAMENTA
Para criar um método seguro e incremental para seu backup de um diretório local e transferir para um servidor remoto, é preciso destacar que o servidor remoto precisará tem instalado o serviço SSH, pois será utilizada a ferramenta SCP para transferir os dados. Como opção ao SSH, o servidor também poderá ter rodando um FTP ;-)
Para realizar essa operação, é necessário executar o comando abaixo:
PASSPHRASE=sua-senha-SSH-servidor duplicity /home/ricardo/Downloads
scp://user@servidor-remoto//home/user/backup/
Onde,
- sua-senha-SSH-servidor - representa a senha do usuário do servidor SSH remoto
- scp://user@servidor-remoto - representa o comando scp informando o usuário (user) e endereço IP do servidor remoto
- /home/user/backup/ - representa o diretório onde serão salvos os dados de backup no servidor remoto
Uma solução viável, seria criar um script para execução desse procedimento.
export PASSPHRASE=sua-senha-SSH-servidor
duplicity ~/Downloadsscp://user@servidor-remoto//home/user/backup/
unset PASSPHRASE
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase:
Retype passphrase to confirm:
No signatures found, switching to full backup.
--------------[ Backup Statistics ]--------------
StartTime 1375918500.17 (Wed Aug 7 19:35:00 2013)
EndTime 1375918539.07 (Wed Aug 7 19:35:39 2013)
ElapsedTime 38.90 (38.90 seconds)
SourceFiles 3
SourceFileSize 65982804 (62.9 MB)
NewFiles 3
NewFileSize 65982804 (62.9 MB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 3
RawDeltaSize 65978708 (62.9 MB)
TotalDestinationSizeChange 66132356 (63.1 MB)
Errors 0
-------------------------------------------------
Quando você cria o primeiro backup remoto, a ferramenta Duplicity garantirá a criação do primeiro backup completo e solicitará uma senha para a chave criptográfica GnuPG (em destaque na amostra acima). Posteriormente, dado o primeiro backup completo criado, o Duplicty criará backups incrementais e solicitará a senha criada na chave GnuPG.
VERIFICANDO A INTEGRIDADE DOS DADOS SALVOS NO BACKUP
Se fez backup, é preciso verificá-lo. Independentemente da ferramenta que usou, é importante verificar a integridade dos dados. O comando a ser executado deve ser:
duplicity verify
scp://user@servidor-remoto//home/user/backup/
~/DownloadsLocal and Remote metadata are synchronized, no sync needed.
Last full backup date: Wed Aug 7 19:34:52 2013
Verify complete: 8 files compared, 0 differences found.
Importante: Quando é usado o parâmetro "verify", é preciso inverter a ordem - primeiro é informado o local remoto de onde foi feito o backup e depois o local de origem dos arquivos
RECUPERANDO DADOS DO BACKUP
Quando for preciso recuperar os arquivos do backup, é necessário executar o comando:
duplicity
scp://user@servidor-remoto//home/user/backup/
/home/ricardo//Downloads_recuperadoOnde, é preciso informar o local de recuperação dos arquivos (/home/ricardo//Downloads_recuperado) - deve ser diferente do local de origem de envio dos arquivos (/home/ricardo//Downloads)
BÔNUS - BACKUP VIA FTP
Além do SSH, o Duplicity suporta o FTP. O formato do comando é:
FTP_PASSWORD=mypass duplicity ~Downloads
ftp://username@ftp_server.com/backup_directory
Mais Informações
SITE OFICIAL - DUPLICITY
How to create a secure incremental offsite backup in Linux with Duplicity