Backups automáticos com rsync, restic ou BorgBackup
Neste tutorial, você vai configurar backups automáticos do seu VPS usando três ferramentas populares. Escolha a que melhor se adapta ao seu cenário.
Qual escolher?
| Ferramenta | Incremental | Deduplicação | Criptografia | Destinos |
|---|---|---|---|---|
| rsync | Sim (sincroniza diferenças) | Não | Não (só no transporte via SSH) | Outro servidor via SSH |
| restic | Sim | Sim | Sim | S3, SFTP, B2, REST e outros |
| BorgBackup | Sim | Sim | Sim | Servidor com Borg via SSH |
Resumo: rsync para espelhar arquivos simples; restic para armazenamento em nuvem; Borg para enviar a outro servidor Linux.
Passo 0: dump dos bancos de dados
Copiar os arquivos do banco com ele em uso pode gerar backups inconsistentes. Gere dumps antes:
#!/bin/bash
# /usr/local/bin/dump-bancos.sh
set -euo pipefail
DESTINO=/var/backups/db
mkdir -p "$DESTINO"
mariadb-dump --single-transaction --all-databases | gzip > "$DESTINO/mariadb.sql.gz"
# PostgreSQL: sudo -u postgres pg_dumpall | gzip > "$DESTINO/postgres.sql.gz"
Execute como root, para que o acesso ao MariaDB via socket funcione sem senha.
Opção 1: rsync
Espelha arquivos para outro servidor via SSH:
rsync -az --delete \
/var/www /etc /var/backups/db \
backup@servidor-backup:/backups/meuvps/
-a: preserva permissões, datas e links;-z: compressão no transporte;--delete: remove no destino o que foi apagado na origem.
⚠️ O rsync mantém apenas o estado atual. Se um arquivo for corrompido ou apagado, a cópia também será na próxima execução. Para histórico, use restic ou Borg.
Opção 2: restic
Instalação
sudo apt install restic -y
Inicialize o repositório (exemplo com armazenamento compatível com S3)
export AWS_ACCESS_KEY_ID=SUA_CHAVE
export AWS_SECRET_ACCESS_KEY=SEU_SEGREDO
export RESTIC_REPOSITORY=s3:https://endpoint-do-provedor/nome-do-bucket
export RESTIC_PASSWORD='senha-longa-e-guardada-em-local-seguro'
restic init
Guarde a senha do repositório em local seguro. Sem ela, é impossível restaurar.
Script de backup
/usr/local/bin/backup.sh:
#!/bin/bash
set -euo pipefail
source /root/.restic-env # arquivo com as variáveis acima (chmod 600)
/usr/local/bin/dump-bancos.sh
restic backup /var/www /etc /var/backups/db --exclude-caches
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
restic check --read-data-subset=5%
forget --prune: aplica a política de retenção;check: verifica a integridade de parte dos dados a cada execução.
Restaurando
restic snapshots
restic restore latest --target /tmp/restauracao
restic restore latest --target /tmp/restauracao --include /var/www/site
Opção 3: BorgBackup
Instalação (nos dois servidores)
sudo apt install borgbackup -y
Inicialize o repositório remoto
export BORG_REPO=ssh://backup@servidor-backup/./meuvps
export BORG_PASSPHRASE='senha-longa'
borg init --encryption=repokey-blake2
borg key export "$BORG_REPO" /root/borg-key-backup.txt # guarde fora do servidor!
Script
#!/bin/bash
set -euo pipefail
export BORG_REPO=ssh://backup@servidor-backup/./meuvps
export BORG_PASSPHRASE='senha-longa'
/usr/local/bin/dump-bancos.sh
borg create --stats --compression zstd \
::'{hostname}-{now:%Y-%m-%d_%H%M}' \
/var/www /etc /var/backups/db
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 12
borg compact
No servidor de backup, restrinja a chave SSH ao Borg em modo append-only, impedindo que um invasor no VPS apague backups antigos:
command="borg serve --append-only --restrict-to-path /home/backup/meuvps",restrict ssh-ed25519 AAAA...
Restaurando
borg list
borg extract ::meuvps-2026-09-24_0300 var/www/site
Agendando
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Ou use um timer do systemd. Adicione um alerta: ao final do script, chame a URL de push do seu monitor (ex.: Uptime Kuma).
Checklist final
- [ ] Dumps de banco antes do backup de arquivos;
- [ ] Backup criptografado e fora do servidor;
- [ ] Política de retenção definida;
- [ ] Senhas/chaves guardadas em local seguro, fora do VPS;
- [ ] Alerta em caso de falha;
- [ ] Restauração testada.
Conclusão
Com restic ou Borg, você tem backups incrementais, criptografados e eficientes, rodando sozinhos todas as noites. E com NVMe, a leitura dos dados para o backup é muito mais rápida.Conheça os planos VPS-NVME-BR da VittHost e use o cupom SP-VITT20 para ganhar 20% de desconto na primeira fatura enquanto a promoção estiver ativa.