Un backup programmato ti protegge da ieri. Un aggiornamento che rompe il sito lo rompe adesso, e l'ultima copia può avere venti ore, con in mezzo una giornata di ordini. Il backup che conta è quello preso subito prima della modifica.
Un comando
#!/usr/bin/env bash
# /usr/local/bin/snap
set -euo pipefail
SITE=/var/www/site
OUT=/srv/backup/pre-change/$(date +\%F-\%H\%M)
mkdir -p "$OUT"
tar -czf "$OUT/files.tar.gz" -C "$SITE" .
mysqldump --single-transaction --quick --routines --triggers dbname | gzip > "$OUT/db.sql.gz"
echo "$OUT"
sudo snap && sudo apt-get upgrade
Rendilo automatico dove gli strumenti lo consentono
- Uno script di pubblicazione lo esegue come primo passo, prima che venga copiato alcunché.
- Aggiornamenti dei pacchetti: gli hook di
apt, oppure un involucro che usi al posto di apt. - Aggiornamenti del CMS: quasi tutti hanno un plugin che scatta prima un'istantanea — usalo, e tieni comunque anche una copia tua.
Sappi come tornare indietro PRIMA di andare avanti
Scrivi il comando di ritorno accanto al percorso dell'istantanea. Se non è una riga che puoi incollare, il ritorno non avverrà abbastanza in fretta da servire.
# rollback
tar -xzf /srv/backup/pre-change/2026-09-05-0930/files.tar.gz -C /var/www/site
zcat /srv/backup/pre-change/2026-09-05-0930/db.sql.gz | mysql dbname
Ripristinare il database annulla ogni ordine e ogni registrazione successivi all'istantanea. Su un sito trafficato ripristina prima i FILE, e tocca il database solo se il guasto sta davvero nei dati.
Poi fai pulizia
find /srv/backup/pre-change -maxdepth 1 -type d -mtime +14 -exec rm -rf {} +
Aggiorna una cosa alla volta. Cinque plugin insieme vuol dire che il guasto può stare in uno qualsiasi, e il ritorno indietro perde tutti e cinque i miglioramenti per trovare un solo guasto.