−25%

su Windows con pagamento annuale, fino al 31/10. Vai ai piani

EQVPS
Inizia

Come fare il backup di un VPS con restic (cifrato, fuori sede)

Backup del VPS cifrati e deduplicati con restic: repository su storage compatibile S3 o su un altro server, timer systemd, retention e prova di ripristino.

Tutti hanno dei backup finché non provano a ripristinarne uno. La cartella risulta vuota, il cron job è morto a marzo, oppure l'archivio sta sullo stesso disco che si è appena guastato. restic risolve quasi tutto: cifra dalla tua parte, salva ogni dato una sola volta e rende il ripristino di un singolo file facile quanto il backup dell'intero server.

Ecco una configurazione di cui ci fideremmo davvero, su Ubuntu o Debian.

1. Installa restic

apt update && apt install -y restic
restic self-update

I pacchetti della distribuzione restano indietro; self-update scarica la versione attuale.

2. Scegli dove mettere il repository

Il repository non deve stare sul server che stai proteggendo. Due scelte comuni:

3. Salva le credenziali

Tieni tutto in un solo file leggibile solo da root, così timer e shell usano le stesse impostazioni:

cat > /root/.restic-env <<'EOF'
export RESTIC_REPOSITORY="s3:https://s3.example.com/my-bucket/web1"
export RESTIC_PASSWORD_FILE="/root/.restic-pass"
export AWS_ACCESS_KEY_ID="your-key-id"
export AWS_SECRET_ACCESS_KEY="your-secret"
EOF
openssl rand -base64 32 > /root/.restic-pass
chmod 600 /root/.restic-env /root/.restic-pass

Ora copia il contenuto di /root/.restic-pass nel tuo password manager. Senza, i backup non si possono decifrare — né da te né da nessun altro.

4. Inizializza ed esegui il primo backup

source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
  --exclude-caches --exclude '/root/.cache'
restic snapshots

Adatta i percorsi a dove stanno davvero i tuoi dati. I volumi Docker sono in /var/lib/docker/volumes; i dati delle applicazioni spesso in /srv o /opt.

5. Database: prima il dump, poi il backup

Non fare il backup dei file grezzi di un database in esecuzione. Fai il dump subito prima del backup:

mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump

Aggiungi /var/backups/db ai percorsi del backup. La nostra guida a PostgreSQL approfondisce i dump.

6. Pianificalo con systemd

Qui un timer batte cron: scrive nel journal e recupera l'esecuzione se il server era spento all'ora prevista.

# /etc/systemd/system/restic-backup.service
[Unit]
Description=restic backup

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'source /root/.restic-env && restic backup /etc /home /root /srv /var/www /var/backups/db --exclude-caches && restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune'
# /etc/systemd/system/restic-backup.timer
[Unit]
Description=Daily restic backup

[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true

[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl list-timers restic-backup.timer

forget --prune conserva 7 snapshot giornalieri, 4 settimanali e 6 mensili ed elimina il resto. Se hai un passaggio di dump del database, mettilo in una riga ExecStartPre=.

7. Ripristina davvero qualcosa

È il passaggio che trasforma "abbiamo i backup" in un fatto. Recupera una cartella in una directory temporanea e guardala:

source /root/.restic-env
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls -la /tmp/restore-test/etc/nginx
restic check

Fallo una volta adesso e poi ogni pochi mesi. restic check verifica la struttura del repository; il ripristino dimostra che i dati ci sono davvero.

restic e Managed Backups

Non sono in concorrenza. I Managed Backups creano ogni giorno un punto di ripristino dell'intero server da ripristinare dall'area clienti: la soluzione rapida dopo un aggiornamento andato male. Costano $2 al mese e sono inclusi gratis in ogni piano annuale. restic ti dà copie a livello di file, fuori sede, su uno storage che controlli tu: conta quando il problema è un file cancellato martedì scorso o vuoi una copia del tutto fuori dalla nostra infrastruttura.

Se conservi dati sensibili, abbinalo alla cifratura completa del disco, oppure guarda il caso d'uso storage cifrato per gestire la tua destinazione di backup. Un piano Micro basta per la maggior parte dei piccoli server e dei loro backup.

FAQ

Cosa succede se perdo la password di restic?

I backup sono persi per sempre. restic cifra tutto lato client e non esiste una chiave di recupero. Conserva la password in un password manager, non solo sul server di cui fai il backup.

Dove deve stare il repository?

Ovunque tranne che sul server stesso: storage a oggetti compatibile S3, un altro VPS via SFTP o una macchina a casa. Un backup sullo stesso disco muore con quel disco.

Come faccio il backup di un database con restic?

Prima fai il dump e salva il dump — per PostgreSQL 'pg_dump -Fc', per MySQL 'mysqldump --single-transaction'. Copiare i file di un database attivo può darti un backup che non si avvia.

Quanto spazio occupano i backup?

Meno di quanto pensi. restic divide i file in blocchi e salva ogni blocco una sola volta, quindi gli snapshot giornalieri di un server che cambia poco aggiungono solo i dati modificati.

Mi servono ancora i Managed Backups?

Risolvono problemi diversi. I Managed Backups ti danno punti di ripristino giornalieri dell'intero server da ripristinare dall'area clienti. restic ti dà copie a livello di file, fuori sede e sotto il tuo controllo. Molti usano entrambi.

Commenti

Ancora nessun commento. Sii il primo.

Lascia un commento

I commenti sono moderati prima di comparire.