Backups com Restic: criptografados, incrementais e prontos para cloud

Uma estratégia de backup confiável precisa de três pilares: criptografia, automação e confiança real no restore. O Restic entrega esses três pontos com uma CLI simples e suporte amplo a diferentes backends.

Este guia mostra um fluxo prático para servidores e equipes pequenas de infraestrutura.

1) Instale o Restic

No Ubuntu/Debian:

sudo apt update
sudo apt install restic -y
restic version

2) Configure credenciais do repositório

Para jobs não interativos, use variáveis de ambiente:

export RESTIC_REPOSITORY=s3:https://s3.us-east-1.amazonaws.com/my-restic-bucket
export RESTIC_PASSWORD='use-a-strong-passphrase'
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'

Para repositório local:

export RESTIC_REPOSITORY=/backup/restic-repo
export RESTIC_PASSWORD='use-a-strong-passphrase'

Inicialize o repositório:

restic init

3) Faça o primeiro snapshot

restic backup /etc /var/www /home

Liste snapshots:

restic snapshots

4) Aplique política de retenção

Exemplo equilibrado:

restic forget --prune \
  --keep-last 10 \
  --keep-daily 14 \
  --keep-weekly 8 \
  --keep-monthly 12

Isso controla crescimento sem perder pontos úteis de recuperação.

5) Verifique integridade do repositório

Check rápido:

restic check --read-data-subset=5%

Check completo periódico:

restic check

6) Teste de restore (obrigatório)

Restaure um caminho específico do snapshot mais recente:

restic restore latest --target /tmp/restore-test --include /etc/nginx/nginx.conf

Valide conteúdo, permissões e tempo de recuperação.

7) Automatize com systemd

Crie serviço /etc/systemd/system/restic-backup.service:

[Unit]
Description=Restic Backup Job

[Service]
Type=oneshot
EnvironmentFile=/etc/restic/env
ExecStart=/usr/bin/restic backup /etc /var/www /home
ExecStartPost=/usr/bin/restic forget --prune --keep-last 10 --keep-daily 14 --keep-weekly 8 --keep-monthly 12

Crie timer /etc/systemd/system/restic-backup.timer:

[Unit]
Description=Run Restic backup daily

[Timer]
OnCalendar=*-*-* 02:15:00
Persistent=true

[Install]
WantedBy=timers.target

Ative o timer:

sudo systemctl daemon-reload
sudo systemctl enable --now restic-backup.timer
sudo systemctl list-timers | grep restic

Boas práticas operacionais

  • Armazene senha do repositório em cofre de segredos
  • Separe credenciais de backup das credenciais de runtime
  • Mantenha cópia imutável/offline para resiliência a ransomware
  • Documente runbook de restore com prioridades de recuperação

Conclusão

O Restic oferece fundamentos de proteção de dados de nível profissional com baixa complexidade. Quando snapshots, retenção, checks e testes de restauração são automatizados, o risco operacional cai bastante.

O ponto crítico é disciplina: backup precisa ser monitorado, auditável e restaurável quando realmente necessário.