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:
- Un altro server via SFTP:
sftp:backup@203.0.113.20:/srv/restic/web1 - Storage a oggetti compatibile S3:
s3:https://s3.example.com/my-bucket/web1
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.
Commenti
Ancora nessun commento. Sii il primo.