Ubuntu Backup

Backup é uma cópia dos seus arquivos guardada em outro lugar, para quando o disco queimar, o notebook for roubado ou você apagar algo sem querer. Nesta aula você vai copiar a pasta pessoal para um HD externo com rsync, empacotar com tar e, o mais importante, testar se dá para restaurar.

Você vai aprender
  • A regra 3-2-1 e o que vale a pena copiar.
  • O rsync parte por parte, incluindo a "barra final" que confunde todo mundo.
  • Fazer backups com data no nome usando tar e $(date +%F).
  • Restaurar um arquivo e conferir se a cópia está completa.
  • Os erros que fazem um backup falhar em silêncio.

Antes dos comandos: o que é um bom backup

Um backup só existe de verdade quando você já conseguiu restaurar algo dele. Uma regra simples, usada por profissionais, é a 3-2-1:

NúmeroRegraExemplo da Ana
3Tenha 3 cópias dos dados (o original + 2 backups).Notebook + HD externo + nuvem.
2Em 2 tipos de mídia diferentes.SSD do notebook e HD externo.
11 cópia fora de casa.Um serviço de nuvem ou um HD na casa de um parente.

O que copiar

O quêOnde ficaPrecisa?
Seus arquivos/home/anaSim, é o mais importante.
Configurações do sistema que você mudou/etcEm servidores, sim.
Lista dos programas instaladosGerada com apt-mark showmanualSim; ocupa poucos KB.
Caches~/.cacheNão; o sistema recria sozinho.
O próprio Ubuntu/usr, /bin…Não; é mais rápido reinstalar.

rsync: copiar só o que mudou

rsync vem de remote sync, "sincronização remota". Ele copia arquivos de um lugar para outro, local ou por rede. A grande vantagem sobre o cp: na segunda vez, ele copia só o que mudou. Um backup de 50 GB que levou uma hora passa a levar segundos.

rsync
O programa.
-a
Archive: copia tudo (subpastas, permissões, datas, links), igual ao original.
-v
Verbose: lista cada arquivo copiado.
-h
Tamanhos legíveis no resumo final.
~/Documentos/
A origem. A barra final importa (veja abaixo).
/media/ana/BACKUP/Documentos/
O destino: o HD externo.
$ rsync -avh ~/Documentos/ /media/ana/BACKUP/Documentos/
sending incremental file list
created directory /media/ana/BACKUP/Documentos           « o destino não existia; ele criou
./
acesso.log
notas.txt
relatorio.odt
projetos/
projetos/backup.sh
projetos/site/
projetos/site/index.html
projetos/site/style.css

sent 10,24K bytes  received 191 bytes  20,86K bytes/sec
total size is 9,41K  speedup is 0,90
LinhaSignificado
sending incremental file list"Enviando a lista de arquivos aos poucos". O rsync responde em inglês.
Nomes de arquivosO que foi copiado agora.
sent … received …Quantos bytes foram enviados e recebidos.
speedup is …Quanto o rsync economizou. Na segunda execução, esse número fica bem maior que 1.

Agora a Ana cria um arquivo novo e roda o mesmo comando de novo:

$ echo "reunião às 15h" > ~/Documentos/lembrete.txt
$ rsync -avh ~/Documentos/ /media/ana/BACKUP/Documentos/
sending incremental file list
lembrete.txt                                             « só o que mudou

sent 312 bytes  received 38 bytes  700,00 bytes/sec
total size is 9,43K  speedup is 26,94

A barra final na origem

Este é o detalhe que mais confunde no rsync. Uma barra no fim da origem muda o resultado:

ComandoResultado no destino
rsync -a ~/Documentos/ /backup/Copia o conteúdo: /backup/notas.txt
rsync -a ~/Documentos /backup/Copia a pasta: /backup/Documentos/notas.txt

Leia a barra como "o que está dentro de". No destino, a barra não faz diferença.

Ver antes de fazer: -n

A opção -n (de dry run, "ensaio") mostra o que seria feito, sem copiar nada. Use sempre que mudar o comando:

$ rsync -avhn ~/Documentos/ /media/ana/BACKUP/Documentos/
sending incremental file list

sent 312 bytes  received 20 bytes  664,00 bytes/sec
total size is 9,43K  speedup is 28,40 (DRY RUN)              « (DRY RUN): nada foi copiado

Espelho exato: --delete

Por padrão, se você apaga um arquivo no notebook, ele continua no backup. Com --delete, o rsync apaga do destino o que não existe mais na origem, deixando um espelho exato.

$ rm ~/Documentos/lembrete.txt
$ rsync -avh --delete ~/Documentos/ /media/ana/BACKUP/Documentos/
sending incremental file list
deleting lembrete.txt                                    « apagado também do backup
./

sent 290 bytes  received 40 bytes  660,00 bytes/sec
total size is 9,41K  speedup is 28,52
Cuidado com --delete

Se você trocar origem e destino de lugar, o --delete apaga os seus arquivos originais. Se você apagar algo sem querer e rodar o backup em seguida, a cópia também some. Rode antes com -n e mantenha mais de um backup.

Deixar pastas de fora: --exclude

$ rsync -avh --delete --exclude='.cache' --exclude='Downloads' ~/ /media/ana/BACKUP/home/

Cada --exclude recebe um nome ou padrão. As aspas evitam que o shell expanda curingas antes da hora.

Ver o progresso: --progress

Em arquivos grandes, --progress (ou -P) mostra a porcentagem e a velocidade de cada arquivo:

$ rsync -avh --progress ~/Imagens/ /media/ana/BACKUP/Imagens/
sending incremental file list
ferias.jpg
          2,10M 100%   95,24MB/s    0:00:00 (xfr#1, to-chk=1/3)
perfil.png
        102,40K 100%    4,51MB/s    0:00:00 (xfr#2, to-chk=0/3)

sent 2,20M bytes  received 57 bytes  4,40M bytes/sec
total size is 2,20M  speedup is 1,00

tar: um pacote com data no nome

O rsync mantém um espelho atualizado. Às vezes você quer fotografias de cada dia, para poder voltar a uma versão antiga. Para isso, empacote com tar e coloque a data no nome.

Primeiro, entenda o $(date +%F). O date +%F imprime a data no formato ano-mês-dia, e o $( ) coloca essa saída dentro de outro comando:

$ date +%F
2026-10-15
$ echo "backup-$(date +%F).tar.gz"
backup-2026-10-15.tar.gz
tar
O programa que empacota (veja tar, zip, gzip).
-czf
c = criar, z = compactar com gzip, f = o próximo nome é o arquivo.
/media/ana/BACKUP/documentos-$(date +%F).tar.gz
O arquivo a criar, com a data de hoje no nome.
-C ~
Entra na pasta pessoal antes de empacotar, para os caminhos ficarem curtos.
Documentos
O que empacotar.
$ tar -czf /media/ana/BACKUP/documentos-$(date +%F).tar.gz -C ~ Documentos
$ ls -lh /media/ana/BACKUP/*.tar.gz
-rw-rw-r-- 1 ana ana 4,1K Oct 13 22:00 /media/ana/BACKUP/documentos-2026-10-13.tar.gz
-rw-rw-r-- 1 ana ana 4,1K Oct 14 22:00 /media/ana/BACKUP/documentos-2026-10-14.tar.gz
-rw-rw-r-- 1 ana ana 4,2K Oct 15 10:30 /media/ana/BACKUP/documentos-2026-10-15.tar.gz

Para ver o que tem dentro sem extrair, use -t (de list):

$ tar -tzf /media/ana/BACKUP/documentos-2026-10-15.tar.gz
Documentos/
Documentos/acesso.log
Documentos/notas.txt
Documentos/relatorio.odt
Documentos/projetos/
Documentos/projetos/backup.sh
Documentos/projetos/site/
Documentos/projetos/site/index.html
Documentos/projetos/site/style.css

Missão: o simulador não tem tar, mas tem cp e $( ). Copie a pasta Documentos para dentro de backups, numa pasta com o nome da data de hoje. Dica: cp -r Documentos backups/$(date +%F). Depois confira com ls backups/*.


Testar a restauração

Um backup que nunca foi restaurado é só uma esperança. Faça o teste uma vez por mês.

  1. Restaure um arquivo do espelho do rsync para uma pasta de teste, sem sobrescrever o original:

    $ mkdir -p ~/teste-restauracao
    $ rsync -avh /media/ana/BACKUP/Documentos/notas.txt ~/teste-restauracao/
    sending incremental file list
    notas.txt
    
    sent 191 bytes  received 35 bytes  452,00 bytes/sec
    total size is 71  speedup is 0,31
    $ cat ~/teste-restauracao/notas.txt
    Comprar café
    Ligar para o João
    Estudar Ubuntu
    Fazer backup das fotos
  2. Compare a pasta inteira com o original. O diff -r compara pastas recursivamente; se não mostrar nada, são idênticas:

    $ diff -r ~/Documentos /media/ana/BACKUP/Documentos
    $ echo $?
    0                                                        « 0 = idênticas
  3. Extraia um pacote tar numa pasta separada, com -x (extrair) e -C (onde):

    $ tar -xzf /media/ana/BACKUP/documentos-2026-10-14.tar.gz -C ~/teste-restauracao
    $ ls ~/teste-restauracao
    Documentos  notas.txt
  4. Apague a pasta de teste quando terminar: rm -r ~/teste-restauracao.


A lista de programas instalados

Em vez de copiar os programas, guarde a lista deles. O apt-mark showmanual mostra os pacotes que foram instalados de propósito (e não como dependência):

$ apt-mark showmanual > /media/ana/BACKUP/pacotes.txt
$ wc -l /media/ana/BACKUP/pacotes.txt
157 /media/ana/BACKUP/pacotes.txt

Num Ubuntu novo, reinstale tudo de uma vez:

$ xargs sudo apt install -y < /media/ana/BACKUP/pacotes.txt

Para Snaps, guarde também a saída de snap list.


Formas diferentes de fazer backup

FerramentaComo éMelhor quando…
rsyncEspelho atualizado; rápido nas próximas vezesBackup diário da pasta pessoal para um HD ou outro computador.
tar + dataUm pacote por diaVocê quer voltar a versões antigas de poucos arquivos.
App Backups (Déjà Dup)Gráfico, agendado, com versões e criptografiaDesktop, para quem prefere clicar.
Timeshift"Fotografias" do sistema (não da pasta pessoal)Voltar o sistema depois de uma atualização que deu problema.
restic ou borgVersões, deduplicação e criptografia, inclusive na nuvemServidores e quem quer o melhor dos dois mundos.

Para agendar o backup e não depender da memória, veja Agendar Tarefas e o projeto Backup Automático.


Quando não funciona

O HD não estava conectado e o backup foi para o lugar errado
$ rsync -avh ~/Documentos/ /media/ana/BACKUP/Documentos/
sending incremental file list
created directory /media/ana/BACKUP/Documentos
…

O que aconteceu: o HD externo não estava montado. O rsync criou a pasta /media/ana/BACKUP no próprio SSD e copiou tudo para lá. O "backup" está no mesmo disco do original, e pode até enchê-lo.

Como confirmar: findmnt /media/ana/BACKUP não mostra nada.

Como evitar: em scripts, teste antes com mountpoint, que devolve 0 só se a pasta for um ponto de montagem:

$ mountpoint -q /media/ana/BACKUP && rsync -avh ~/Documentos/ /media/ana/BACKUP/Documentos/ || echo "HD de backup não está montado!"
HD de backup não está montado!
"change_dir … failed: No such file or directory"
$ rsync -avh ~/Documento/ /media/ana/BACKUP/Documentos/
sending incremental file list
rsync: [sender] change_dir "/home/ana/Documento" failed: No such file or directory (2)

sent 19 bytes  received 12 bytes  62,00 bytes/sec
total size is 0  speedup is 0,00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1356) [sender=3.4.1]

O que aconteceu: a origem foi digitada errada (faltou o "s"). Nada foi copiado e o código de saída é 23.

Como resolver: use Tab para completar os caminhos. Em scripts, confira o código de saída do rsync.

Apareceu uma pasta dentro da outra: Documentos/Documentos

O que aconteceu: você esqueceu a barra final na origem (rsync -a ~/Documentos /backup/Documentos/), e o rsync copiou a pasta para dentro do destino.

Como resolver: apague a pasta duplicada e repita com a barra: ~/Documentos/. Use -n antes para conferir.

"Permission denied" ao copiar /etc

O que aconteceu: vários arquivos de /etc só o root pode ler. O rsync copia o resto e termina com code 23.

Como resolver: para pastas do sistema, use sudo rsync -a /etc/ /media/ana/BACKUP/etc/.

Pendrive em FAT32 e arquivo maior que 4 GB

O que aconteceu: o FAT32 não aceita arquivos com mais de 4 GB, e o rsync reclama ao copiar uma ISO ou um vídeo grande. Ele também não guarda permissões do Linux.

Como resolver: formate o disco de backup em ext4 (se ele só for usado no Linux) ou exFAT (se precisar abrir no Windows). Veja Particionar e Formatar.


Referência do rsync

OpçãoDescriçãoExemplo
-aModo arquivo: recursivo e preserva permissões, datas e linksrsync -a orig/ dest/
-vLista os arquivos copiadosrsync -av …
-hTamanhos legíveisrsync -avh …
-nEnsaio: mostra sem fazerrsync -avhn …
-P / --progressMostra o progresso de cada arquivorsync -avhP …
-zCompacta durante a transferência pela redersync -avz … servidor:
--deleteApaga do destino o que não existe mais na origemrsync -a --delete …
--excludeIgnora um nome ou padrão--exclude='.cache'
-A -XPreserva ACLs e atributos estendidosrsync -aAX …

Para copiar para outro computador pela rede, veja scp e rsync.


Exercícios

1. Ensaio

Complete para ver o que o rsync faria, sem copiar nada:

rsync -avh ~/Documentos/ /media/ana/BACKUP/Documentos/

2. Data no nome

Complete para o nome do arquivo ter a data de hoje no formato 2026-10-15:

tar -czf fotos-$(date ).tar.gz Imagens

3. Espelho exato

Complete para o destino ficar idêntico à origem, inclusive apagando o que você apagou:

rsync -avh ~/Documentos/ /media/ana/BACKUP/Documentos/

4. Qual a diferença entre rsync -a ~/Fotos/ /bk/ e rsync -a ~/Fotos /bk/?

5. Quando um backup pode ser considerado confiável?


Resumo

  • Regra 3-2-1: três cópias, dois tipos de mídia, uma fora de casa.
  • rsync -avh origem/ destino/ copia só o que mudou; a barra na origem significa "o conteúdo de".
  • Teste com -n antes; use --delete com cuidado.
  • tar -czf nome-$(date +%F).tar.gz pasta cria uma versão por dia.
  • Restaure de vez em quando e compare com diff -r. Confira com mountpoint se o HD está mesmo conectado.