TL;DR — Resumo Rápido

Guia BorgBackup: backups deduplicados, cifrados e comprimidos no Linux. Instale, automatize com systemd, repositórios SSH remotos, Borgmatic e recuperação.

BorgBackup (borg) é uma ferramenta de backup deduplicada, comprimida e cifrada para Linux que pode reduzir o armazenamento de backups em 50–90% comparado a backups completos tradicionais. Este guia cobre desde a instalação até a automação com Borgmatic, backups remotos por SSH e testes de recuperação de desastre.

Pré-requisitos

  • Sistema Linux (Ubuntu 22.04+, Debian 12+, RHEL 9+ ou Fedora 38+).
  • Acesso root ou sudo na máquina a ser copiada.
  • Destino de backup: disco local, drive externo ou servidor remoto com acesso SSH.
  • Para backups remotos: BorgBackup instalado tanto no cliente quanto no servidor de backup.

Por Que BorgBackup?

Ferramentas de backup tradicionais copiam arquivos sem modificações. O BorgBackup usa chunking definido por conteúdo — divide cada arquivo em blocos de comprimento variável, calcula o hash de cada bloco e armazena apenas os blocos que nunca foram vistos antes:

  • Deduplicação — 10 backups diários de 100 GB podem usar apenas ~110 GB no total.
  • Criptografia AES-256-CTR — Dados são cifrados antes de sair da máquina origem.
  • MACs autenticados — BLAKE2b ou SHA-256 garantem que os backups não foram adulterados.
  • Múltiplas opções de compressãolz4 (rápido), zstd (equilibrado), lzma (tamanho mínimo).
  • Transporte SSH — Faça backup em qualquer servidor remoto sem daemon especial.
  • Montagem FUSE — Navegue archives de backup como um sistema de arquivos normal.

Instalação

Debian / Ubuntu

sudo apt update && sudo apt install borgbackup -y

Fedora / RHEL / Rocky Linux

sudo dnf install borgbackup -y

Última versão via pip

pip install --user borgbackup
borg --version

Inicializar um Repositório

Um repositório BorgBackup é o contêiner de armazenamento que guarda todos os seus archives de backup.

Repositório local

borg init --encryption=repokey-blake2 /backup/borg-repo

Repositório remoto por SSH

borg init --encryption=repokey-blake2 borg@servidorbackup:/backup/borg-repo

Exportar a chave do repositório imediatamente

borg key export /backup/borg-repo ~/borg-repo-key.txt

Guarde borg-repo-key.txt e a senha em um local separado do repositório de backup — um gerenciador de senhas, USB offline ou cópia impressa. Perder ambos significa perda permanente de dados.

Comparativo de modos de criptografia

ModoLocalização da chaveCaso de uso
repokey-blake2Dentro do repositórioMais fácil; recomendado para a maioria
keyfile-blake2Somente no clienteMáxima segurança; chave nunca sai do cliente
noneN/ASomente redes internas; sem criptografia

Criar Backups

Archive básico

export BORG_PASSPHRASE='sua-senha-forte'
export BORG_REPO='/backup/borg-repo'

borg create \
  --stats \
  --progress \
  --compression lz4 \
  "$BORG_REPO::{hostname}-{now:%Y-%m-%dT%H:%M}" \
  /etc /home /var/www /opt \
  --exclude '*.log' \
  --exclude '*.tmp' \
  --exclude '/home/*/.cache' \
  --exclude '/home/*/.local/share/Trash'

Opções de compressão

OpçãoVelocidadeRatioIdeal para
lz4Mais rápidaModeradoBackups automáticos diários
zstd,3RápidaBoaUso geral
zstd,11ModeradaExcelenteAmbientes com pouco armazenamento
lzma,6LentaMáximaArquivamento; acesso pouco frequente

Listar e Montar Archives

Listar todos os archives do repositório

borg list /backup/borg-repo

Montar um archive para navegação FUSE

mkdir -p /mnt/borg-restaurar
borg mount /backup/borg-repo::webserver-2026-03-22T03:00 /mnt/borg-restaurar

# Navegue e copie arquivos normalmente
ls /mnt/borg-restaurar/home/usuario/

# Desmonte ao terminar
borg umount /mnt/borg-restaurar

Extrair Arquivos

Restauração de caminhos específicos

cd /tmp/restaurar
borg extract /backup/borg-repo::webserver-2026-03-22T03:00 \
  home/usuario/documentos \
  etc/nginx

Simulação (listar sem extrair)

borg extract --dry-run --list /backup/borg-repo::webserver-2026-03-22T03:00

Podar Archives Antigos

borg prune remove archives que não atendem mais à política de retenção. Execute após cada backup.

borg prune \
  --keep-daily=7 \
  --keep-weekly=4 \
  --keep-monthly=6 \
  --keep-yearly=2 \
  --list \
  /backup/borg-repo

Após a poda, execute a compactação para liberar espaço em disco:

borg compact /backup/borg-repo

Automação com Timer systemd

/etc/systemd/system/borg-backup.service

[Unit]
Description=Backup diário BorgBackup
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
User=root
Environment=BORG_PASSPHRASE=sua-senha-forte
Environment=BORG_REPO=/backup/borg-repo
ExecStart=/usr/bin/borg create --stats --compression lz4 \
  $BORG_REPO::{hostname}-{now:%%Y-%%m-%%dT%%H:%%M} \
  /etc /home /var /opt \
  --exclude '*.log' --exclude '/home/*/.cache'
ExecStartPost=/usr/bin/borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 $BORG_REPO
ExecStartPost=/usr/bin/borg compact $BORG_REPO

/etc/systemd/system/borg-backup.timer

[Unit]
Description=Timer diário BorgBackup

[Timer]
OnCalendar=daily
RandomizedDelaySec=30min
Persistent=true

[Install]
WantedBy=timers.target

Ativar e iniciar

systemctl daemon-reload
systemctl enable --now borg-backup.timer
journalctl -u borg-backup.service --since today

Backups Remotos por SSH

Restringir a chave SSH no servidor de backup

Em ~/.ssh/authorized_keys do servidor de backup, adicione um comando forçado para que a chave só possa ser usada para borg:

command="borg serve --restrict-to-path /backup/borg-repo",restrict ssh-rsa AAAA...suachave...

A opção restrict desativa encaminhamento de porta, de agente e X11.

Configuração do cliente

export BORG_REPO='borg@servidorbackup:/backup/borg-repo'
export BORG_RSH='ssh -i /root/.ssh/borg_ed25519 -o StrictHostKeyChecking=yes'

borg create "$BORG_REPO::{hostname}-{now:%Y-%m-%dT%H:%M}" /etc /home

Borgmatic: Wrapper de Alto Nível

Instalação

pip install borgmatic

/etc/borgmatic/config.yaml

repositories:
  - path: /backup/borg-repo
    label: local

source_directories:
  - /etc
  - /home
  - /var/www

exclude_patterns:
  - '*.log'
  - /home/*/.cache

encryption_passphrase: "sua-senha-forte"
compression: lz4
keep_daily: 7
keep_weekly: 4
keep_monthly: 6

hooks:
  on_error:
    - echo "Backup falhou em $(date)" | mail -s "Erro Borg em $(hostname)" admin@exemplo.com
  healthchecks:
    ping_url: https://hc-ping.com/seu-uuid

Executar borgmatic manualmente

borgmatic --verbosity 1

Procedimento de Recuperação de Desastre

  1. Instale o BorgBackup no sistema substituto.
  2. Transfira o arquivo de chave exportado para o novo sistema.
  3. Defina as credenciais:
    export BORG_PASSPHRASE='sua-senha'
    export BORG_REPO='borg@servidorbackup:/backup/borg-repo'
  4. Liste os archives disponíveis:
    borg list "$BORG_REPO"
  5. Extraia o archive mais recente:
    cd /
    borg extract "$BORG_REPO::webserver-2026-03-22T03:00"
  6. Verifique a restauração antes de redirecionar o tráfego de produção.

Realize testes de restauração regularmente (mínimo trimestral). Um backup que nunca foi testado não é um backup confiável.


Comparativo: Borg vs Restic vs Duplicati vs rsync vs Timeshift

RecursoBorgBackupResticDuplicatirsyncTimeshift
DeduplicaçãoSimSimNãoNãoSim (hard links)
CriptografiaAES-256AES-256AES-256Não (nativo)Não
Compressãolz4/zstd/lzmazstdDeflateNãoNão
Backends remotosSSH, BorgBaseS3, B2, SFTP, muitosS3, FTP, WebDAVSSHSomente local
Interface gráficaNãoVorta (terceiro)Sim (web)NãoSim
Ideal paraServidores, DevOpsFlexibilidade multicloudUsuários desktopEspelhamento simplesRestauração desktop

Resumo

  • A deduplicação armazena apenas blocos únicos — 10 backups diários de 100 GB usam ~110 GB.
  • Sempre exporte a chave do repositório e guarde-a separada dos backups.
  • Use criptografia repokey-blake2 para proteção AES-256 autenticada.
  • Pode com borg prune e libere espaço com borg compact após cada execução.
  • Automatize com timer systemd para agendamento confiável com logs no journald.
  • Restrinja chaves SSH com command="borg serve ..." no authorized_keys.
  • Use Borgmatic para substituir scripts shell por configuração YAML mantenível.
  • Teste restaurações trimestralmente — um backup nunca testado não é confiável.

Artigos Relacionados