Como realizar backup incremental no Linux, usando o comando tar

O comando tar está ligado às tarefas de gestão de backups desde sua origem.
Seu é uma referência ao dispositivo de gravação/leitura em fitas (tape drives), muito usado, ainda hoje, por sua confiabilidade e capacidade de armazenamento.
backup tape drive
Tar é abreviatura para tape archiver.

Apesar do nome, o utilitário não é restrito a qualquer tipo de mídia de gravação.
Backups feitos com o tar podem ser armazenados aonde você achar melhor.

Neste post, vamos abordar alguns usos do programa para, no final, montar um pequeno script, que você pode alterar para criar seu próprio backup automatizado ou integrar a outro script mais complexo.
Se tiver alguma dúvida, por favor, clique nos links presentes no texto para obter mais informações.
Não esqueça de dar uma olhada também na tag backup deste site e nos links da sessão de referências.

Os desafios de fazer backups eficientes

Fazer cópias de segurança de um grande volume de dados, pode tomar muito tempo.
Consome tanto tempo, que muita gente deixa de ter este cuidado — e pode se arrepender amargamente por isso.
O ideal é automatizar o processo de backup.
O processo de cópia e compressão de uma grande quantidade de arquivos também consome tempo de processamento — todo o sistema pode ficar significativamente mais lento durante a realização da tarefa.

Para não ser uma “coisa chata” na sua vida, contudo, o backup eficiente precisa ser automático e rodar em background, ou seja, ser executado nos bastidores — de preferência, em um horário em que você não esteja usando (muito) o computador.

fita cartuchos dell ultrium
O backup incremental é demorado na primeira vez em que é executado, mas é rápido nas outras execuções.
Isto ocorre por que consiste em apenas adicionar arquivos novos ou que foram alterados, desde a última vez em que foi feito. O resto é ignorado.

Como fazer o backup incremental com o comando tar

Se tiver algum dúvida extra, leia o post “9 exemplos de uso do comando tar“.
Para realizar um backup simples de um diretório no sistema rode o tar, seguido do nome desejado para o arquivo de backup e do nome do diretório a ser copiado:


tar cvf justincase-backup-2afeira.tar /home/justincase

No comando acima:

  • a opção ‘c’ indica que você deseja comprimir/copiar os arquivos do diretório para dentro de um só arquivo de backup.
  • a opção ‘v’ indica que você deseja ter feedback sobre a execução da tarefa. Você pode usar ‘vv’ ou ‘vvv’ e tornar o comando ainda mais verboso.
  • a opção ‘f’ deve preceder o nome do arquivo que vai abrigar o backup.

Há outras formas de usar este mesmo comando. As opções, por exemplo, podem ser dadas separadamente:


tar -c -v -f justincase-backup-2afeira.tar /home/justincase

O backup padrão, realizado desta forma, não é um processo incremental, contudo.
Para realizar a cópia incremental de arquivos, é necessário acrescentar a opção ‘–incremental’ ou sua abreviatura ‘-G’.
Veja um exemplo de uso:


time tar --incremental -cjf temp/backup-config.tar.bz .config/

real    1m44,454s
user    1m43,921s
sys 0m1,049s

Note que usei o comando time, no começo da linha.
Seu uso é opcional.
Como utilitário do sistema, o time, mede o tempo de execução da sequência de instruções que o seguem.
O mesmo procedimento, na segunda execução, já mostra uma redução de aproximadamente 10 segundos.


time tar --incremental -cjf temp/backup-config.tar.bz .config/

real    1m33,590s
user    1m33,276s
sys 0m0,991s

Experimente realizar o backup em diretórios com uma quantidade maior de arquivos grandes, para obter uma diferença de tempo bem maior.

Opções de compressão para o tar

É uma boa prática acrescentar a opção de compressão ao seu comando de backup com o tar:

  • você pode usar a opção ‘a’ para determinar automaticamente qual o programa/sistema de compressão será usado sobre o arquivo — baseado na sua extensão. Portanto se o arquivo tiver a extensão .tar.bz, o tar irá entender que deve usar o bzip para comprimí-lo.
  • você pode indicar manualmente o nome do programa de compressão com a opção ‘I’.
  • as opções de compressão mais comuns são ‘j’ (bzip2), ‘z’ (gzip), ‘Z’ (compress) e ‘J’ (xz). A primeira tem uma taxa de compressão melhor.
  • outras opções possíveis, são ‘–lzip’, ‘–lzop’ e ‘–lzma’.

Lembre-se que arquivos MP3, MPEG, JPEG – entre outros tipos de arquivos de mídia – já estão compactados e, nestes casos, não será possível obter uma taxa de compressão significativa.

Arquivos comprimidos são transferidos mais rápido pela rede ou para dentro da mídia de backup.
Por outro lado, o processo de compressão/descompressão pode sobrecarregar temporariamente o sistema.

Como recuperar arquivos tar

ibm flash backup drive
Para ver o conteúdo do arquivo, use a opção ‘t’:


tar tvf meubackup.tar.bz

Para recuperar o backup use a opção ‘x’ (extract). Neste caso, é importante informar ao tar sobre o método/programa usado para realizar a compressão:


tar xvjf meubackup.tar.bz

No exemplo acima, sei que preciso usar a opção ‘j’, por que a extensão do arquivo indica que ele foi comprimido com o bzip.
Ler a extensão de um arquivo, não é um meio muito confiável para determinar os padrões de compressão utilizados — por que a pessoa que realizou o backup é livre para escolher a extensão que ela quiser.
Você pode usar a opção ‘a’ ou nada, para permitir que o próprio tar descubra o método de compressão utilizado:


tar xvaf meubackup.tar.bz

ou


tar xvf meubackup.tar.bz

Como testar e obter informações de arquivos comprimidos com o tar

Você pode usar o comando file para tentar determinar o método de compressão utilizado em um arquivo:


file --brief ../backup-scripts.tar.bz 

bzip2 compressed data, block size = 900k

Ou, ainda,


file --uncompress --brief --mime backup-scripts.tar.bz 

application/x-tar; charset=binary compressed-encoding=application/x-bzip2; charset=binary

Pode também testar o arquivo com as opções já dadas:


tar -tvf meubackup.tbz

A extensão tbz, usada no exemplo acima, também é muito comum em arquivos tareados, comprimidos com o bzip2.
Testar os seus backups é tão importante quanto fazê-los.
Seria muito ruim descobrir que o backup não funcionou ou teve problemas, justo na hora em que você vai precisar dele.
hdd storage backup

A melhor hora para testar seus backups é quando você não precisa deles.
Assim, é possível analisar a situação com calma e determinar exatamente o que é que não está funcionando neste processo — e corrigir os problemas.

Como criar um script de backup

O script, que segue, reúne basicamente o que foi visto até aqui, neste artigo.
Entendo que você possa necessitar de algo mais complexo, para atender às suas necessidades particulares ou profissionais. Neste caso, ele pode servir como um ponto de partida para chegar aonde quer.
Não esqueça de alterar as variáveis de ambiente e os nomes de diretórios e arquivos, para refletir a sua realidade.

Script de backup


#!/bin/bash
# Descrição = Realiza cópia de segurança de arquivos importantes
# Criado em 20 de Abril de 2017
# Autor: Elias Praciano
# Version 1.0

## cria as variáveis para compor o nome arquivo de backup
# atribui à variável DATA os valores de
# data e hora atuais, para usar
# na composição do nome do arquivo
DATA=$(date +'%d-%m-%Y')

#  Define o nome do arquivo de backup
ARQUIVO=backup-$DATA.tar.gz

# cria a variável contendo o local de origem dos arquivos
ORGDIR=scripts

# cria a variável contendo o local de destino
DESDIR=backup

# comando de criação do backup
tar -cvvjf $DESDIR/$ARQUIVO $ORGDIR

Leia sobre como adicionar uma data ao nome do seu arquivo, se quiser ter mais flexibilidade nesta escolha, dentro do script
Antes de poder ser executado, o script precisa obter permissão de execução. Veja como fazer isto:


chmod +x ./nome-do-script-de-backup.sh

Agora, que ele já está pronto para rodar, teste-o:


./nome-do-script-de-backup.sh

Leia também por que usamos ./ na frente de alguns arquivos executáveis no Linux.

Referências

http://broexperts.com/how-to-perform-incremental-backup-in-linux-using-tar-utility/.

Como adicionar a data atual ao nome de um arquivo no Bash.

Esta dica pode ajudar em diversas situações, principalmente quando se quer criar um arquivo de dentro de um script Bash e se deseja incluir uma string com a data atual no próprio nome do arquivo.
Um dos casos em que se pode aplicar o recurso é um script de backup de segurança.
Veja alguns exemplos de como chegar ao resultado, no decorrer deste texto.
Se você tiver alguma solução diferente, sinta-se à vontade para compartilhá-la nos comentários.
Para obter a data atual, no formato dia-mês-ano, use a seguinte fórmula:


hoje=$(date +"%d-%m-%y")


O código Bash, acima, irá armazenar dentro da variável hoje a data no formato determinado anteriormente. Para poder ver conteúdo da variável, use o comando echo:


echo "a data atual é: $hoje."

Veja o meu resultado:

a data atual é: 23-04-17.

Para inserir o valor da data atual em uma variável com o nome de um arquivo, basta alterar estes exemplos.
Segue algumas dicas:


hoje=$(date +'%d-%m-%y')
nomearquivo=nomearquivo-$hoje

Para obter o valor da variável nomearquivo, use novamente o comando echo:


echo $nomearquivo
nomearquivo-23-04-17

Quando você for definir o nome do arquivo, dentro do script, basta lhe atribuir o valor da variável nomearquivo.
O post Como realizar backup incremental no Linux tem um exemplo real. Sugiro dar uma olhada.
Se preferir que o ano seja exibido com 4 dígitos, use o %Y (em maiúscula):


hoje=$(date +'%d-%m-%Y'); echo "Data atual: $hoje."

Exemplos de formatação do date no Bash Shell

Acompanhe mais alguns exemplos de formatação do comando.
Para incluir o nome do dia da semana:


hoje=$(date +'%A-%d-%m-%Y'); nomearquivo=backup-$hoje.bak; echo "Nome do meu arquivo de backup, hoje: $nomearquivo."
Nome do meu arquivo de backup, hoje: backup-domingo-23-04-2017.bak.

Ou, ainda, com o nome do mês completo:


hoje=$(date +'%A-%d-%B-%Y'); nomearquivo=backup-$hoje.bak; echo "Nome do meu arquivo de backup, hoje: $nomearquivo."
Nome do meu arquivo de backup, hoje: backup-domingo-23-abril-2017.bak.

E se eu precisar criar vários arquivos de backup, no mesmo dia?! Como posso adicionar a data (que vai ser a mesma), sem sobrescrever arquivos?
Há várias soluções para este caso.
A minha preferida é usar ‘%s’ no lugar de ou em adição ao nome do arquivo.
Este parâmetro retorna o número de segundos decorridos desde 1970-01-01 00:00:00 UTC.
Veja um exemplo:


minhadata=$(date +'%s')
nomearq=arq-$minhadata
echo -e "Nome do arquivo: $nomearq."

Para mim, o resultado da sequencia de comandos acima, foi:

Nome do arquivo: arq-1493045947.

Desta forma, basta que os arquivos sejam criados com uma diferença de, pelo menos, 1 segundo em relação ao outro.
Se esta não for uma necessidade, prefiro usar apenas o parâmetro ‘%F’:



minhadata=$(date +'%F');nomearq=arq-$minhadata;echo -e "\nNome do meu arquivo:\t$nomearq."
Nome do meu arquivo:	arq-2017-04-24.

Ou o ano (em 4 dígitos) seguido do número do dia, uma vez que a data já é exibida à direita dos nomes dos arquivos, na listagem dos diretórios — o que torna esta informação redundante.
Veja um exemplo:


minhadata=$(date +'%Y-%j');nomearq=arq-$minhadata;echo -e "\nNome do meu arquivo:\t$nomearq."
Nome do meu arquivo:	arq-2017-114.

Saiba mais usando o ‘man date’.

Como comprimir arquivos no Linux, usando o comando gzip

O comando gzip oferece um dos meios mais eficientes de comprimir arquivos, no Linux.
O gzip faz uso do Lempel-Ziv ou lz77 que, além de ser eficaz na redução do pacote final, promove uma metodologia de compressão lossless, ou seja, sem perda de informações.
gzip oficial logo

O LZ77 e o LZ78 são dois algoritmos de compressão lossless, publicados por Abraham Lempel e Jacob Ziv, em 1977 e 1978.
São também conhecidos por LZ1 e LZ2, respectivamente. Ambos formam a base para outras variações, o que inclui os LZW, LZSS, LZMA etc.
Além da influência no meio acadêmico, estes algoritmos formaram a base de vários importantes e ubíquos esquemas de compressão, tais como o GIF (imagens) e o algoritmo deflacionário usado nas imagens PNG.

O gzip é um comando muito usado na compressão de arquivos e diretórios no Linux — diretamente ou dentro de scripts (de backup, por exemplo). Com toda certeza, vale a pena conhecer melhor o seu uso.
Ao final do artigo, há um link para o site data-compression, onde é possível obter mais informações sobre o algoritmo.
A animação, que segue, demonstra a aplicação do método LZ1/LZ2 de compressão:
lempelziv animation
Além disto, entre os programas de (de)compressão, este é padrão e costuma estar presente em quase todas as distribuições GNU/Linux.

Como usar o gzip, na linha de comando do Linux

Como comportamento padrão, quando comprimimos um arquivo ou pasta, usando o comando gzip, o resultado será um arquivo com o mesmo nome, acrescido da extensão .gz.
Para comprimir um simples arquivo, use o gzip na linha de comando, assim:

gzip arquivo

O mesmo vale para um arquivo do LibreOffice:

gzip documento.odt 
ls doc*

documento.odt.gz

Como você pode ver, no exemplo acima, o nome do arquivo foi acrescido da extensão .gz, logo após sua original .odt.
Alguns arquivos irão ter taxas de compressão melhores do que outros.
Documentos de texto, imagens bitmap, arquivos de áudio WAV e FLAC, entre outros, costumam alcançar boas taxas de compressão.
Por outro lado, arquivos de compressão lossy, que já sofreram perda de dados, como imagens JPEG e áudio MP3, terão péssimas taxas de compressão. Na verdade, o resultado final pode acabar sendo um arquivo maior — uma vez que passarão a carregar informações adicionadas pelo gzip.

Como descomprimir arquivos gzip

Se você tem um arquivo que já tenha sido comprimido via gzip, use o comando acompanhado da opção ‘-d’ (descomprimir) para reverter o processo anterior.
Veja um exemplo:

gzip -d documento.odt.gz 
ls doc*

documento.odt

Como forçar o gzip a comprimir um arquivo

Quando não houver ganho na compressão de algum arquivo, o gzip pode “se recusar” a fazer o serviço.
Se você pretende insistir na tarefa, use a opção ‘-f’ para forçar o gzip a prosseguir.
No exemplo, que segue, acompanhe o que é feito, através dos comentários, precedidos pelo símbolo #:

# Verificação do tamanho original do arquivo BackCover.jpg.gz
ls -l BackCover.jpg.gz 
-rw-r--r-- 1 justincase justincase 76646 Ago 29 18:22 BackCover.jpg.gz

# Ao tentar comprimir o arquivo o programa avisa que ele já tem a extensão .gz
gzip BackCover.jpg.gz 
gzip: BackCover.jpg.gz already has .gz suffix -- unchanged

# Para prosseguir, use a opção -f
gzip -f BackCover.jpg.gz 

# Note que o arquivo final passou a ter 50 bytes a mais
ls -l BackCover.jpg.gz.gz 
-rw-r--r-- 1 justincase justincase 76696 Ago 29 18:22 BackCover.jpg.gz.gz

Se quiser, faça suas próprias experiências, antes de prosseguir.

Como manter o arquivo original e aplicar a compressão a uma cópia

Para manter o arquivo original e criar um novo arquivo comprimido, use a opção ‘-k’:

gzip -k cartaz.jpg
ls -l cartaz.*
-rw-r--r-- 1 justincase justincase 76965 Ago 29 18:22 cartaz.jpg
-rw-r--r-- 1 justincase justincase 76643 Ago 29 18:22 cartaz.jpg.gz

Como obter estatísticas de compressão do gzip

O objetivo de se comprimir arquivos é economizar espaço de armazenamento e/ou obter transferências mais eficientes, na rede.
Seria interessante, portanto, obter algumas estatísticas sobre a eficiência de compressão sobre os arquivos.
Para ter uma idéia da eficiência da compressão de um arquivo, use a opção ‘-l’:

gzip -l cartaz.jpg.gz 

O que se vê, como resultado, é o tamanho original do arquivo, seu tamanho comprimido, a taxa de compressão obtida pelo gzip e, por fim, o nome original do arquivo:

         compressed        uncompressed  ratio uncompressed_name
              76643               76965   0.5% cartaz.jpg

Dá para comprimir pastas com o gzip?

Se você quiser comprimir uma pasta inteira, para dentro de um único pacote, o ideal é usar o comando tar — por que o gzip irá comprimir cada arquivo, individualmente, não a pasta inteira, como um pacote.
Além disto, ele não aceita compactar o diretório. Veja:

gzip textos/
gzip: textos/ is a directory -- ignored

Para compactar os arquivos dentro do diretório – recursivamente, portanto –, é necessário usar a opção ‘-r’:

gzip -r textos/

O resultado é o que segue:

ls -l textos/
total 20
-rw-r--r-- 1 justincase justincase 145 Ago 30 11:18 texto1.txt.gz
-rw-r--r-- 1 justincase justincase 145 Ago 30 11:20 texto2.txt.gz
-rw-r--r-- 1 justincase justincase 145 Ago 30 11:20 texto3.txt.gz
-rw-r--r-- 1 justincase justincase 145 Ago 30 11:20 texto4.txt.gz
-rw-r--r-- 1 justincase justincase 145 Ago 30 11:20 texto5.txt.gz

Como verificar se o gzip obteve sucesso no procedimento

Se você usa o gzip, dentro de um processo de backup, pode verificar a integridade de cada arquivo comprimido com a opção ‘-t’:

gzip -tv textos/*
textos/texto1.txt.gz:    OK
textos/texto2.txt.gz:    OK
textos/texto3.txt.gz:    OK
textos/texto4.txt.gz:    OK
textos/texto5.txt.gz:    OK

Note que adicionei o ‘v’ às opções do comando. Do contrário, ele não retornaria resultados, a menos que houvesse erros. Isto seria útil dentro de um script.
Por fim, é possível controlar a taxa de compressão, adicionando um valor númerico, como opção — de 1 a 9.
Para obter a taxa de compressão máxima, use o valor 9.
Na “brincadeira”, abaixo, o arquivo foi compactado com a opção ‘-1’, primeiro (que é a taxa de compressão mais baixa) e depois, com a taxa de compressão mais alta. Enquanto isto, foi verificada a estatística de compressão de cada um, com a opção ‘-l’:

# compactando com a taxa mais baixa
gzip -1 documento.odt 
# obtendo estatísticas
gzip -l documento.odt.gz 
         compressed        uncompressed  ratio uncompressed_name
                159                 685  81.5% documento.odt

# descomprimindo o arquivo
gzip -d documento.odt.gz 
# compactando com a taxa mais alta
gzip -9 documento.odt 
# obtendo estatísticas
gzip -l documento.odt.gz 
         compressed        uncompressed  ratio uncompressed_name
                158                 685  81.6% documento.odt


Não use o programa gzip com arquivos ZIP. Para este tipo de arquivo, existem aplicativos apropriados: o zip e o unzip, por exemplo.

Referências

https://en.wikipedia.org/wiki/LZ77_and_LZ78.
http://www.data-compression.com/lempelziv.html.
http://linux.about.com/od/commands/fl/Example-Uses-Of-The-Linux-gzip-Command.htm?utm_content=7489444&utm_medium=email&utm_source=exp_nl&utm_campaign=list_linux&utm_term=.

Use o Jack para ripar e fazer backup dos seus CDs de música

Cada vez menos usamos CDs de música. Arquivos de áudio digital em pendrives ou cartões de memória, permitem levar uma quantidade maior de músicas para ouvir, praticamente, a qualquer lugar.
Legalmente, você não é obrigado a comprar de novo suas músicas em mp3. Tem o direito de copiar mídias, adquiridas por meios legais, para dentro de arquivos, que você possa usar em outros lugares — o que inclui o sistema de som do carro (que, cada vez menos, têm entrada para CD).
O Jack é um programa para transformar CDs de áudio em arquivos MP3 — ou FLAC, OGG, WAV etc.
Se você pretende ouvir seus arquivos de áudio em smartphones Android, saiba que a maioria dos players desta plataforma suportam os formatos FLAC (com melhor qualidade) e OGG (com melhor compressão).
Recomendo usar o FLAC. Se você precisa de argumentos para isto, leia este artigo.
O Jack, como muitos outros programas nesta categoria, vasculha os bancos de dados online do CDDB (Compact Disc DataBase), para obter informações sobre o CD que você introduziu no drive.
A partir das informações obtidas no CDDB, ele automaticamente nomeia os arquivos e acrescenta as tags correspondentes.
Jack, the ripper.
Em outro artigo, falei do aplicativo Ripit — que também faz o mesmo trabalho.
O Ripit pode ser mais versátil, sob certos aspectos. Além disto, permite converter as faixas de um CD em uma grande gama de formatos de arquivos, quase simultaneamente.
Talvez seja mais recomendado usar o Ripit, se a quantidade de mídias a converter for maior do que 10 e se você tiver a intenção de obter seus arquivos de música em mais de um formato digital de reprodução.
Se quiser ler mais sobre o Ripit, clique aqui.
A interface do Jack, contudo é mais bonita e permite uma visualização mais organizada das atividades de conversão — mesmo sendo uma interface em modo texto.

Como instalar o Jack

Se você usa uma distribuição Linux baseada no Debian, como o Ubuntu, Linux Mint etc. deve estar familiarizado com os frontends de gestão de pacotes apt, aptitude e apt-get. No meu exemplo, a seguir, vou usar o apt:

sudo apt install jack

Como usar o Jack

Jack, the ripper — how to rip my audio CDs
O Jack é leve e rápido para fazer seu trabalho. Não pesa no sistema e, mesmo rodando sobre um hardware bem modesto, você pode ir fazer outras coisas enquanto o Jack ripa seus CDs de música.
Para rodar o programa, basta digitar jack na janela do terminal e pressionar Enter.
Os novos arquivos (sejam .mp3, .flac, .ogg etc.) ficarão armazenados no diretório atual.
Se estiver com pressa de colocá-los no seu pendrive, basta mudar o diretório atual para lá — de forma que eles já sejam criados aonde você os quer. O que te poupa o trabalho de copiá-los depois.
Dentro da janela de execução do Jack, é possível usar o teclado para interagir com o programa (mas não muito).
É na linha de comando que a “mágica” é decidida.
Veja um exemplo:

jack --quality 10 --query-now --bitrate 320 --encoder-name lame

Veja o significado de cada parâmetro:

  • --quality — escolha um valor de 0 a 10 para definir a qualidade da conversão.
    0 é a menor qualidade possível, que resulta em uma melhor compressão e em arquivos menores.
    Se você não tem problemas com escassez de espaço para armazenar seus arquivos de áudio, opte pela qualidade máxima (10).
  • --query-now — faz com que o aplicativo pergunte antes de iniciar sobre os dados do CD a ser ripado. Se esta opção for suprimida, o padrão é inquirir o usuário ao final do processo.
  • --bitrate — a taxa de bits de dados também influencia a qualidade do áudio final.
    Se você não quiser usar este parâmetro, o Jack irá usar o padrão 160 kbps ou DAB — Digital Audio Broadcasting, que tem ótima qualidade.
  • --encoder-name — informe aqui o codificador desejado:
    1. lame, para obter arquivos finais em mp3;
    2. flac, para obter arquivos finais em .flac;
    3. oggenc (padrão), para obter arquivos finais em .ogg;

    Os arquivos .wav já são sempre criados e apagados. Para evitar que sejam removidos, ao final da operação, acrescente a opção ‘–keep-wavs’ à linha de comando.

Jack, the files list
Além dos encoders, citados acima, é possível usar também oggenc (padrão), gogo, bladeenc, l3enc, mp3enc e xing.
Apenas certifique-se de que estejam instalados, para poder usar.

Como ativar o sistema de backup nativo do seu celular Android

O sistema de backup do Android é o que tem garantido que, com a frequente troca de aparelhos ou os constantes resets (quase sempre para fazer testes… ), os meus nunca se perdem.
Quando falo em meus dados, refiro-me aos meus contatos, as senhas dos wi-fi dos diversos locais que frequento, histórico das chamadas telefônicas, dados dos meus apps etc.
O sistema de backup nativo do Android usa a sua conta no Google Drive e as cópias de segurança de seus arquivos não contam como espaço ocupado.
Neste post, me baseio no Android 6.0 Marshmallow, mas as informações valem para outras versões do sistema operacional.
Android Marshmallow robot
E você não precisa instalar nada no aparelho.
Ao ativar o backup automático do Android, seus arquivos serão guardados periodicamente em uma pasta privativa, dentro do Google Drive.
Sobre backups, é preciso que se enfatize que dados importantes, não devem ter apenas um esquema de segurança.
Especificamente sobre o backup nativo do Android, de que estamos falando aqui, ele não se refere aos seus arquivos de vídeo, imagens e de áudio.
Arquivos importantes devem ser armazenados redundantemente em locais diferentes.
Em outras palavras, você precisa de mais de um esquema de backup, para estar do lado seguro.

Como ativar o backup automático do Android

A ativação do sistema de backup é simples e pode ser feita seguindo as instruções abaixo:

  1. Abra o menu de configurações.
  2. Selecione Fazer backup e redefinir.
  3. Ative a opção Backup dos dados.

A imagem, abaixo, ilustra a sequência.
Como ativar o backup nativo do Android
Este procedimento irá permitir que seus dados sejam guardados na nuvem e, posteriormente, automaticamente recuperados.