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-blake2armazena uma chave criptografada com AES-256-CTR protegida por sua frase-senha. - Compressão —
lz4(rápido),zstd(equilibrado) oulzma(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
| Recurso | Borgmatic | Restic | Duplicati | Kopia |
|---|---|---|---|---|
| Criptografia | AES-256-CTR | AES-256-CTR | AES-256 | AES-256-GCM |
| Deduplicação | Sim | Sim | Sim | Sim |
| Config | YAML | CLI | GUI/XML | GUI/CLI |
| Hooks DB | Nativo (PG, MySQL) | Scripts externos | Não | Não |
| Somente-anexar | Sim | Não | Não | Não |
| Destinos remotos | SSH, SFTP | S3, B2, SFTP | FTP, S3, WebDAV | S3, B2, SFTP |
Problemas Comuns
| Problema | Solução |
|---|---|
Failed to create/acquire the lock | Executar borgmatic borg break-lock /caminho/repo |
Repository is not a valid Borg repository | Caminho incorreto ou repo não inicializado; executar borgmatic init |
Passphrase incorrect | Verificar encryption_passphrase na configuração |
Connection closed by remote host | Chave 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.