TL;DR — Resumo Rápido

Borgmatic automatiza backups cifrados e deduplicados com BorgBackup no Linux. Configure YAML, agende com systemd timers e implemente estratégia 3-2-1 de backup.

Borgmatic converte a poderosa mas verbosa CLI do BorgBackup em uma configuração YAML declarativa — um único arquivo gerencia backups criptografados, deduplicados e comprimidos com políticas de retenção, verificações de consistência, hooks de banco de dados e notificações de monitoramento.

Pré-requisitos

  • Servidor Linux (Ubuntu 20.04+, Debian 11+, RHEL 8+ ou similar)
  • Python 3.8+ (para pip install) ou acesso ao apt/dnf
  • Acesso SSH a um destino de backup remoto
  • Acesso root ou sudo

Fundamentos do BorgBackup

  • Deduplicação — O Borg divide arquivos em blocos de tamanho variável e armazena cada bloco único apenas uma vez.
  • Criptografia — O modo repokey-blake2 armazena uma chave criptografada com AES-256-CTR protegida por sua frase-senha.
  • Compressãolz4 (rápido), zstd (equilibrado) ou lzma (máximo). zstd,3 é o padrão moderno.
  • Modo somente-anexar — Repositórios podem ser configurados em modo append-only para que mesmo um cliente comprometido não possa excluir arquivos existentes.

Passo 1: Instalar e Configurar

Instalar:

pip install --upgrade borgmatic
# ou
apt install borgmatic

Gerar configuração:

mkdir -p /etc/borgmatic
borgmatic config generate --destination /etc/borgmatic/config.yaml

Configuração mínima para servidor web:

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

repositories:
  - path: /var/backup/local-borg
    label: local
  - path: ssh://backup@192.168.1.100/~/backups/servidor
    label: remoto-lan

storage:
  encryption_passphrase: "sua-frase-senha-longa-e-aleatoria-aqui"
  compression: "zstd,3"

retention:
  keep_daily: 7
  keep_weekly: 4
  keep_monthly: 6
  keep_yearly: 1

postgresql_databases:
  - name: minha_app_producao
    username: postgres
    format: custom

hooks:
  after_backup:
    - curl -fsS https://hc-ping.com/seu-uuid > /dev/null
  on_error:
    - echo "Backup FALHOU em $(date)" | mail -s "Erro de Backup" admin@exemplo.com

Passo 2: Inicializar o Repositório

borgmatic init --encryption repokey-blake2

Exportar e guardar a chave offline:

borg key export /var/backup/local-borg /root/chave-borg-backup.txt

Passo 3: Executar e Agendar Backups

borgmatic create --verbosity 1 --list --stats  # primeiro backup
borgmatic          # criar + podar + compactar + verificar
borgmatic prune    # aplicar política de retenção
borgmatic compact  # recuperar espaço liberado
borgmatic check    # verificar integridade

Habilitar timer do systemd:

systemctl enable --now borgmatic.timer

Passo 4: Restaurar

borgmatic list                    # ver arquivos disponíveis
borgmatic info --archive latest   # detalhes do arquivo mais recente
borgmatic extract --archive latest --path /var/www/minhaapp --destination /tmp/restaurar
borgmatic restore --archive latest --database minha_app_producao

Comparação: Borgmatic vs Alternativas

RecursoBorgmaticResticDuplicatiKopia
CriptografiaAES-256-CTRAES-256-CTRAES-256AES-256-GCM
DeduplicaçãoSimSimSimSim
ConfigYAMLCLIGUI/XMLGUI/CLI
Hooks DBNativo (PG, MySQL)Scripts externosNãoNão
Somente-anexarSimNãoNãoNão
Destinos remotosSSH, SFTPS3, B2, SFTPFTP, S3, WebDAVS3, B2, SFTP

Problemas Comuns

ProblemaSolução
Failed to create/acquire the lockExecutar borgmatic borg break-lock /caminho/repo
Repository is not a valid Borg repositoryCaminho incorreto ou repo não inicializado; executar borgmatic init
Passphrase incorrectVerificar encryption_passphrase na configuração
Connection closed by remote hostChave SSH não adicionada ou borg serve não em authorized_keys

Resumo

  • BorgBackup fornece deduplicação, criptografia AES-256, compressão e modo somente-anexar.
  • Borgmatic envolve o Borg em um único config YAML cobrindo create, prune, compact, check e hooks.
  • Timer do systemd gerencia o agendamento com RandomizedDelaySec.
  • Hooks de banco de dados garantem dumps consistentes de PostgreSQL e MySQL.
  • Estratégia 3-2-1 implementada listando múltiplos repositórios na configuração.
  • Sempre teste as restaurações antes de precisar delas.

Artigos Relacionados