OffshoreVps
Sicurezza25 set 20266 min di letturaDi il team di OffshoreVps

Backup di un VPS con Restic o Borg

Backup cifrati e deduplicati su un secondo server: comandi restic e borg, dump dei database, retention, pianificazione e test di un ripristino.

Un backup che puoi ripristinare fa la differenza tra un pomeriggio fastidioso e la perdita di un progetto. La guida base al backup di un VPS spiega l’idea. Questa va oltre con restic e BorgBackup: due strumenti che creano backup cifrati e deduplicati su un secondo server o su un object storage.

Finestra del terminale su un VPS che mostra i comandi usati per fare il backup di un VPS con restic o borg, a partire da “sudo apt install -y restic”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

Perché restic o borg invece di semplici copie

  • Deduplicazione. Vengono salvati solo i dati modificati, quindi gli snapshot giornalieri restano piccoli.
  • Cifratura. I dati vengono cifrati prima di lasciare il tuo server.
  • Snapshot. Puoi ripristinare lo stato di qualsiasi giorno passato.
  • Verifica. Entrambi gli strumenti possono controllare l’integrità del repository.

Scegline uno. Restic è semplice e funziona con molti tipi di storage, inclusi SFTP e storage compatibile S3. Borg è molto efficiente e funziona via SSH verso un server su cui sia installato borg.

Dove inviare i backup

Non conservare mai l’unico backup sullo stesso server. Usa un secondo VPS in un’altra sede, un bucket compatibile S3 o una storage box. Un piccolo VPS con un grande disco è un bersaglio di backup economico. Vedi i piani VPS.

Restic: configurazione

sudo apt install -y restic
export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic/myserver"
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

Crea il file della password con una password lunga e casuale e conserva una copia offline. Senza quella password i backup non si possono ripristinare.

restic backup /etc /home /var/www --exclude-caches
restic snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
I passaggi di questa guida in ordine: 1. Perché restic o borg invece di semplici copie; 2. Dove inviare i backup; 3. Restic: configurazione; 4. I database richiedono attenzione; 5. Pianificalo; 6. Testa un ripristino
I passaggi di questa guida, in ordine.

Borg: configurazione

sudo apt install -y borgbackup
export BORG_REPO="ssh://backup@backup.example.com/srv/borg/myserver"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd ::'{hostname}-{now:%Y-%m-%d}' /etc /home /var/www
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg check

Esporta e conserva la chiave del repository con borg key export.

I database richiedono attenzione

Non copiare i file di un database in funzione. Fai prima un dump e salva il dump nel backup:

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
sudo -u postgres pg_dumpall | gzip > /var/backups/pg.sql.gz

Pianificalo

Esegui il backup da un timer systemd o da cron. Una semplice riga cron:

15 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Fatti avvisare in caso di errore, per esempio con un ping di monitoraggio alla fine dello script.

Testa un ripristino

restic restore latest --target /tmp/restore-test --include /etc/nginx
ls /tmp/restore-test

Ogni tanto prova un ripristino reale su una macchina di riserva. Un backup mai testato è solo una speranza.