Tutoriais

Backups automáticos com rsync, restic ou BorgBackup

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.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS