Skip to Content
DocumentaçãoOperaçõesAdministração do SistemaBackup e recuperação

Backup e recuperação

O backup de dados é um dos aspectos mais importantes da administração do sistema. Este artigo apresenta várias soluções de backup e recuperação no Ubuntu 26.04 para ajudá-lo a escolher a ferramenta certa para suas necessidades.

rsync - Ferramenta de sincronização flexível

rsync é uma ferramenta de sincronização de arquivos rápida e flexível que oferece suporte a transferências incrementais e é uma das ferramentas de backup mais comumente usadas no Linux.

Uso Básico

# Local directory sync rsync -av /source/directory/ /backup/directory/ # Note: the trailing slash on the source path matters # /source/dir/ -> syncs the contents of the directory # /source/dir -> syncs the directory itself (including the directory name)

Opções comuns

# -a archive mode (preserves permissions, timestamps, symlinks, etc.) # -v verbose output # -z compress during transfer # -h human-readable output # --progress show progress # --delete delete files in the target that don't exist in the source # Complete local backup command rsync -avh --progress /home/user/ /backup/home-user/ # Backup with exclusion rules rsync -avh --progress \ --exclude='.cache' \ --exclude='node_modules' \ --exclude='.local/share/Trash' \ /home/user/ /backup/home-user/ # Using an exclude file rsync -avh --exclude-from='/home/user/rsync-excludes.txt' \ /home/user/ /backup/home-user/

Backup remoto

# Backup to a remote server via SSH rsync -avz -e ssh /home/user/ user@remote:/backup/home-user/ # Specify SSH port rsync -avz -e "ssh -p 2222" /home/user/ user@remote:/backup/home-user/ # Restore from a remote server rsync -avz user@remote:/backup/home-user/ /home/user/ # Use --delete to keep both sides in sync rsync -avz --delete /home/user/ user@remote:/backup/home-user/

Script de backup rsync automatizado

Crie um script de backup:

sudo nano /usr/local/bin/daily-backup.sh
#!/bin/bash # Configuration SOURCE="/home/" DEST="/backup/daily" LOG="/var/log/backup.log" DATE=$(date +%Y-%m-%d_%H%M%S) # Create log entry echo "===== Backup started: $DATE =====" >> "$LOG" # Execute backup rsync -avh --delete \ --exclude='.cache' \ --exclude='node_modules' \ --exclude='.local/share/Trash' \ "$SOURCE" "$DEST" >> "$LOG" 2>&1 # Record result if [ $? -eq 0 ]; then echo "Backup completed successfully: $(date)" >> "$LOG" else echo "Backup failed: $(date)" >> "$LOG" fi
sudo chmod +x /usr/local/bin/daily-backup.sh

Agende com cron:

# Run backup every day at 2 AM sudo crontab -e # Add: 0 2 * * * /usr/local/bin/daily-backup.sh

Timeshift - Instantâneos do sistema

O Timeshift se concentra em instantâneos e recuperação de arquivos do sistema, semelhante à Restauração do sistema do Windows.

Instalação e configuração

# Install Timeshift sudo apt install timeshift # Launch the graphical interface sudo timeshift-gtk # Create a snapshot via command line sudo timeshift --create --comments "Before installing NVIDIA driver" # List all snapshots sudo timeshift --list # Restore to a specific snapshot sudo timeshift --restore --snapshot '2026-03-24_10-00-00' # Delete a snapshot sudo timeshift --delete --snapshot '2026-03-24_10-00-00'

Configuração de linha de comando

# View current configuration sudo timeshift --config # Set snapshot type (RSYNC or BTRFS) sudo timeshift --snapshot-device /dev/sda2

Arquivo de configuração do Timeshift

Editar /etc/timeshift/timeshift.json:

{ "backup_device_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "parent_device_uuid": "", "do_first_run": false, "btrfs_mode": false, "include_btrfs_home": false, "schedule_monthly": false, "schedule_weekly": true, "schedule_daily": true, "schedule_hourly": false, "schedule_boot": false, "count_monthly": 2, "count_weekly": 3, "count_daily": 5, "count_hourly": 0, "count_boot": 0, "exclude": [ "/home/**", "/root/**" ] }

Modo instantâneo Btrfs

Se o sistema usar o sistema de arquivos Btrfs, o Timeshift poderá aproveitar os instantâneos nativos do Btrfs, que são mais rápidos e usam menos espaço:

# Verify filesystem type df -T / # If it's Btrfs, select BTRFS mode in Timeshift sudo timeshift --btrfs

Deja Dup - Ferramenta de backup de desktop

Deja Dup (GNOME Backups) é uma ferramenta de backup fácil de usar para o ambiente de desktop Ubuntu, adequada para usuários pessoais.

Instalação e uso

# Install (usually pre-installed on Ubuntu Desktop) sudo apt install deja-dup

Deja Dup disponibiliza uma interface gráfica, acessível através de “Configurações” ou pesquisando por “Backups” no menu do aplicativo.

Principais recursos:

  • Suporta backup em discos locais, unidades externas e armazenamento em rede
  • Suporta backup para Google Drive e outro armazenamento em nuvem
  • Criptografia automática de backups
  • Suporte de backup incremental
  • Backups automáticos agendados

Operações de linha de comando

Deja Dup usa duplicidade como backend:

# Manually run a backup deja-dup --backup # Restore files deja-dup --restore

Backup de imagem de disco

Criando imagens de disco com dd

# Create a full disk image sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress # Compressed image sudo dd if=/dev/sda bs=4M status=progress | gzip > /backup/sda.img.gz # Restore from an image sudo dd if=/backup/sda.img of=/dev/sda bs=4M status=progress # Restore from a compressed image gunzip -c /backup/sda.img.gz | sudo dd of=/dev/sda bs=4M status=progress

Usando Clonezilla

Clonezilla é uma poderosa ferramenta de clonagem e imagem de disco:

# Install Clonezilla sudo apt install clonezilla # It is generally recommended to boot from a Clonezilla Live USB # Download: https://clonezilla.org/downloads.php

Backup do sistema com tar

# Back up the entire system (excluding unnecessary directories) sudo tar czpf /backup/system-$(date +%Y%m%d).tar.gz \ --exclude=/backup \ --exclude=/proc \ --exclude=/sys \ --exclude=/dev \ --exclude=/run \ --exclude=/tmp \ --exclude=/mnt \ --exclude=/media \ --exclude=/lost+found \ / # Restore the system sudo tar xzpf /backup/system-20260324.tar.gz -C /

Backup de banco de dados

MySQL/MariaDB

# Back up a single database mysqldump -u root -p database_name > /backup/db-$(date +%Y%m%d).sql # Back up all databases mysqldump -u root -p --all-databases > /backup/all-db-$(date +%Y%m%d).sql # Restore a database mysql -u root -p database_name < /backup/db-20260324.sql

PostgreSQL

# Back up a single database sudo -u postgres pg_dump dbname > /backup/pg-$(date +%Y%m%d).sql # Back up all databases sudo -u postgres pg_dumpall > /backup/pg-all-$(date +%Y%m%d).sql # Restore sudo -u postgres psql dbname < /backup/pg-20260324.sql

Recomendações de estratégia de backup

A regra de backup 3-2-1

  • 3 cópias dos seus dados (o original + 2 backups)
  • 2 mídias de armazenamento diferentes (por exemplo, disco rígido local + armazenamento em nuvem)
  • 1 backup externo (proteção contra desastres físicos)

Recomendações por cenário

CenárioFerramentas recomendadasFrequência de backup
Usuário pessoal de desktopDeja Dup + TimeshiftDiariamente / Semanalmente
Estação de trabalho de desenvolvimentorsync + mudança de horárioDiariamente
Servidor webrsync + backup de banco de dadosDiariamente / De hora em hora
Servidor de negócios críticorsync + instantâneos LVM + backup externoTempo real/por hora

Verificando backups

A verificação regular da integridade do backup é essencial:

# Verify a tar backup tar tzf /backup/system-20260324.tar.gz > /dev/null # Verify an rsync backup rsync -avhn --delete /source/ /backup/ # dry-run to compare differences # Perform periodic restore drills