Un VPS può guastarsi, essere cancellato per errore o rompersi con un cattivo aggiornamento. L’unica protezione è un backup che hai testato. Questa guida configura backup semplici, automatici e cifrati con strumenti gratuiti.
La regola 3-2-1
Tieni 3 copie dei tuoi dati, su 2 tipi diversi di storage, con 1 copia in un luogo completamente diverso. Per un VPS di solito significa i dati attivi, uno snapshot locale e una copia off-site presso un altro provider o in un altro paese.
Cosa salvare
- File del sito e upload (
/var/www). - Database, prima esportati in un file con un dump (non copiare mai i file di un database in funzione).
- Configurazione:
/etc/nginx, modifiche in/etc, file Docker Compose e volumi. - Cron job ed eventuali script personalizzati.
Puoi reinstallare il sistema operativo in pochi minuti. Quello che non puoi reinstallare sono i tuoi dati e le tue impostazioni.
Usa restic per backup cifrati e deduplicati
sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
Crea il file della password con una lunga stringa casuale e conserva una copia in un posto sicuro. Se perdi questa password, i backup non possono essere aperti. restic supporta anche storage compatibile S3, quindi puoi inviare i dati a qualsiasi object store.
Uno script di backup
#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Salvalo come /usr/local/bin/backup.sh, rendilo eseguibile e pianificalo:
sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup
Testa un ripristino
restic snapshots
restic restore latest --target /tmp/restore-test --include /etc/nginx
Un backup che non hai mai ripristinato è solo una speranza. Testa una volta a trimestre e sempre dopo aver cambiato qualcosa.
Gli snapshot aiutano, ma non bastano
Gli snapshot del provider sono rapidi e comodi prima di modifiche rischiose, ma vivono presso lo stesso provider e nello stesso account. Consideralo un comodo extra e tieni una copia indipendente off-site.