Principal / Guias / Restic Backups

Cópias de segurança off-site criptografadas com líquido

Os instantâneos diários do seu anfitrião são seguros contra erros, não contra perder o anfitrião inteiro. Os backups reais vivem em outro lugar e são criptografados. restic faz ambos, e é um binário.

1. Instalar repouso

apt update && apt install -y restic

restic escreve um único repositório criptografado. Ele pode viver em S3, Backblaze B2, outro servidor sobre SFTP, ou até mesmo um segundo Buran VPS.

2. Criar o repositório

export RESTIC_REPOSITORY="sftp:backup@other-host:/srv/backups/myserver"
export RESTIC_PASSWORD="a-long-unique-passphrase"
restic init

Mantenha a frase- senha em um gerenciador de senha. Se você perdê-lo, os dados se foram — esse é o ponto de criptografia. Para tarefas automáticas, armazene- as em um arquivo de ambiente legível apenas por root:

cat > /etc/restic.env <<'EOF'
RESTIC_REPOSITORY=sftp:backup@other-host:/srv/backups/myserver
RESTIC_PASSWORD=change-me
EOF
chmod 600 /etc/restic.env

3. Primeiro backup

set -a; . /etc/restic.env; set +a
restic backup /etc /root /home /var/www --exclude-caches
restic snapshots

As bases de dados precisam de uma descarga, não de uma cópia de ficheiro: uma pasta de dados PostgreSQL em execução é inconsistente. Descarta primeiro, depois faz o backup da pasta. Veja o nosso Guia PostgreSQL para o comando de descarga.

4. Execute-o noite com um temporizador sistemad

cat > /etc/systemd/system/restic-backup.service <<'EOF'
[Unit]
Description=restic backup
[Service]
Type=oneshot
EnvironmentFile=/etc/restic.env
ExecStart=/usr/bin/restic backup /etc /root /home /var/www --exclude-caches
ExecStartPost=/usr/bin/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
EOF
cat > /etc/systemd/system/restic-backup.timer <<'EOF'
[Unit]
Description=Nightly restic backup
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl enable --now restic-backup.timer

5. Teste a restauração — hoje, não em uma emergência

set -a; . /etc/restic.env; set +a
restic snapshots
restic restore latest --target /tmp/restore-test
ls -la /tmp/restore-test/etc

Um backup que você nunca restaurou é uma esperança, não um backup. Repita o teste a cada poucos meses — e verifique se o repositório realmente cresce.

Respostas rápidas

Onde deve estar o repositório de backup?

Qualquer lugar, exceto a máquina que você está fazendo backup: armazenamento de objetos como Backblaze B2, outro servidor sobre SFTP, ou um segundo VPS. Os backups no mesmo hospedeiro não sobrevivem a um hospedeiro perdido.

De quanto espaço preciso?

deduplica e comprime, então um servidor típico raramente cresce mais de alguns GB por mês de mudanças. 50–100 GB de armazenamento remoto é bastante para um servidor pequeno.

Ainda preciso de fotografias do anfitrião?

Sim. Buran instantâneos restaurar uma máquina inteira em um clique e são perfeitos para "Eu quebrei há cinco minutos". Os backups restic fora do local cobrem perda de hardware e erros de operador que sobrevivem à janela de instantâneo.

Precisa de uma segunda máquina para segurar backups? Uma caixa NAT de 3 € funciona bem.

Relacionado