Backup Differenziale WordPress: Guida Tecnica Completa

28 maggio 20267 minBackup
In breveAI

Il backup differenziale salva solo le modifiche dall'ultimo backup completo. Più semplice dell'incrementale nel restore, più efficiente del completo in spazio: -50% storage con restore in 2 step.

Cos’è un backup differenziale

Un backup differenziale salva tutti i file e i dati modificati dall’ultimo backup completo. A differenza del backup incrementale, che salva solo le modifiche dall’ultimo backup di qualsiasi tipo, il differenziale mantiene sempre come riferimento l’ultimo full backup.

In un contesto WordPress, questo significa:

  • Il primo backup è sempre completo (database + file system)
  • I backup successivi salvano solo ciò che è cambiato rispetto al backup completo iniziale
  • Ogni backup differenziale cresce progressivamente fino al prossimo backup completo
  • Per il restore servono solo due elementi: l’ultimo backup completo + l’ultimo differenziale

Questa strategia si posiziona tra il backup completo (più pesante ma più semplice) e quello incrementale (più efficiente ma più complesso nel restore).

Differenze tecniche: completo vs incrementale vs differenziale

Per gestire correttamente i backup di decine o centinaia di siti WordPress client, è fondamentale capire le differenze operative:

Backup completo

  • Cosa salva: tutti i file del sito + dump completo del database
  • Dimensione: sempre uguale (salvo crescita del sito)
  • Tempo di backup: proporzionale alla dimensione totale del sito
  • Restore: un solo archivio da ripristinare
  • Spazio occupato: N × dimensione_sito (dove N = numero di backup)

Backup incrementale

  • Cosa salva: solo file modificati dall’ultimo backup (di qualsiasi tipo)
  • Dimensione: minima, solo le modifiche recenti
  • Tempo di backup: molto rapido
  • Restore: serve il backup completo + tutti gli incrementali in sequenza
  • Spazio occupato: molto efficiente

Backup differenziale

  • Cosa salva: file modificati dall’ultimo backup completo
  • Dimensione: cresce progressivamente tra un completo e l’altro
  • Tempo di backup: aumenta con il tempo trascorso dal completo
  • Restore: serve solo backup completo + ultimo differenziale
  • Spazio occupato: equilibrio tra completo e incrementale

Per un’agenzia con 50 siti client, un sito WordPress medio (2GB) con backup giornalieri e ciclo settimanale:

  • Strategia completa: 50 siti × 2GB × 7 backup = 700GB/settimana
  • Strategia incrementale: ~70GB iniziale + ~100-150GB incrementali = 170-220GB/settimana
  • Strategia differenziale: ~70GB iniziale + ~250-300GB differenziali = 320-370GB/settimana

Implementazione tecnica in WordPress

WordPress non include nativamente un sistema di backup differenziale. L’implementazione richiede logica custom o plugin specifici.

Metodo 1: Rsync con hard links (file system)

Per i file, rsync è lo strumento più efficiente per backup differenziali:

#!/bin/bash
BACKUP_DIR="/backup/cliente-xyz"
SOURCE="/var/www/cliente-xyz"
DATE=$(date +%Y%m%d_%H%M%S)
LAST_FULL="$BACKUP_DIR/full_latest"

# Backup differenziale con hard links
rsync -avH --delete \
  --link-dest="$LAST_FULL" \
  "$SOURCE/" \
  "$BACKUP_DIR/diff_$DATE/"

Questo approccio crea hard links per i file non modificati, risparmiando spazio mantenendo una struttura completa navigabile.

Metodo 2: Database differenziale con MySQL binary log

Per il database, il backup differenziale richiede una strategia diversa:

  • Backup completo: mysqldump classico con --single-transaction
  • Backup differenziale: salvataggio dei binary log MySQL tra un dump e l’altro
  • Restore: importa dump completo + applica binary log in sequenza
# Backup completo database
mysqldump --single-transaction \
  --flush-logs --master-data=2 \
  wordpress_db > full_backup.sql

# I binary log successivi costituiscono il differenziale
# Configurare in my.cnf:
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 7

Metodo 3: Plugin con supporto differenziale

Alcuni plugin WordPress enterprise supportano backup differenziali:

  • UpdraftPlus Premium: supporto incrementale (non differenziale puro)
  • BackWPup Pro: backup incrementale file system
  • WP Time Capsule: approccio real-time incrementale
  • ManageWP: backup intelligenti con deduplicazione

Per AgencyPilot, abbiamo implementato un sistema proprietario che combina rsync per i file e dump differenziali del database basati su checksum delle tabelle, con restore automatizzato.

Quando usare il backup differenziale

Il backup differenziale non è sempre la scelta ottimale. Ecco quando ha senso implementarlo:

Scenari ideali

  • Siti con modifiche moderate: 5-15% dei file cambiano giornalmente (blog, siti editoriali)
  • Frequenza media di backup: 1-3 backup/giorno con ciclo settimanale o bisettimanale di backup completi
  • Vincoli di banda: upload limitato verso storage remoto
  • Database medio-grandi: 500MB-5GB dove dump completi sono onerosi
  • Requisiti di restore veloci: RTO (Recovery Time Objective) < 1 ora

Quando evitare il differenziale

  • WooCommerce ad alto traffico: database cambia troppo rapidamente, meglio incrementale o snapshot
  • Siti con deployment frequenti: se fai 5-10 deploy/giorno, ogni differenziale sarebbe quasi un completo
  • Storage economico e abbondante: se usi S3 con lifecycle policy aggressive, backup completi sono più semplici
  • Siti statici o quasi: meglio backup completi settimanali
  • Ambienti con snapshot filesystem: ZFS o LVM snapshot sono più efficienti

Strategia di retention ottimale

Per un’agenzia che gestisce siti client, una politica di retention equilibrata per backup differenziali:

Schema 7-4-12 (consigliato)

  • Giornalieri: 7 giorni di backup differenziali (1 completo + 6 differenziali)
  • Settimanali: 4 settimane di backup completi (uno ogni domenica)
  • Mensili: 12 mesi di backup completi (primo del mese)

Con questa strategia, per un sito da 2GB con 10% di modifiche giornaliere:

  • Backup completo: 2GB
  • Differenziale giorno 1: ~200MB
  • Differenziale giorno 2: ~400MB
  • Differenziale giorno 6: ~1.2GB
  • Totale settimana: ~6GB invece di 14GB (backup completi) o ~3.5GB (incrementali puri)

Automazione con cron

# /etc/cron.d/wordpress-backup

# Backup differenziale ogni 6 ore (lun-sab)
0 */6 * * 1-6 /opt/scripts/wp-backup-diff.sh

# Backup completo ogni domenica alle 2:00
0 2 * * 0 /opt/scripts/wp-backup-full.sh

# Cleanup retention ogni lunedì alle 4:00
0 4 * * 1 /opt/scripts/wp-backup-cleanup.sh

Monitoring e validazione

Un backup non testato è uno pseudo-backup. Per i differenziali, il monitoraggio è ancora più critico:

Metriche da tracciare

  • Dimensione differenziale: se supera il 70% del completo, probabilmente conviene fare un nuovo completo
  • Tempo di backup: un differenziale non dovrebbe mai impiegare più del 40% del tempo di un completo
  • Tasso di successo: target >99% per backup automatici
  • Integrità archivi: verifica checksum MD5/SHA256 post-backup
  • Restore test: almeno un restore completo mensile in ambiente staging

Script di validazione

#!/bin/bash
# Valida integrità catena backup differenziali

FULL_BACKUP="$1"
DIFF_BACKUP="$2"

# Verifica checksum
md5sum -c "$FULL_BACKUP.md5" || exit 1
md5sum -c "$DIFF_BACKUP.md5" || exit 2

# Test restore in sandbox
TEST_DIR="/tmp/restore_test_$$"
mkdir -p "$TEST_DIR"

# Estrai backup completo
tar -xzf "$FULL_BACKUP" -C "$TEST_DIR"

# Applica differenziale
tar -xzf "$DIFF_BACKUP" -C "$TEST_DIR"

# Verifica wp-config.php esiste
test -f "$TEST_DIR/wp-config.php" || exit 3

echo "Backup chain validated successfully"
rm -rf "$TEST_DIR"

Costi e performance reali

Dati raccolti su 127 siti WordPress gestiti tramite AgencyPilot (Q1 2026):

Risparmio spazio storage

  • Backup completi: 2.8TB/mese (baseline)
  • Backup differenziali: 1.2TB/mese (-57%)
  • Backup incrementali: 0.9TB/mese (-68%)

Tempo medio di backup

  • Completo: 8.3 minuti (sito medio 1.8GB)
  • Differenziale giorno 1: 1.2 minuti
  • Differenziale giorno 7: 4.7 minuti
  • Incrementale: 0.8-1.5 minuti (costante)

Tempo medio di restore

  • Da completo: 6.1 minuti
  • Da differenziale: 7.8 minuti (+28%)
  • Da incrementale: 11.4 minuti (+87%)

Costo storage S3 (eu-south-1)

Per 50 siti con retention 7-4-12:

  • Completi: ~$95/mese (3.4TB Standard)
  • Differenziali: ~$42/mese (1.5TB Standard)
  • Con lifecycle S3 IA: ~$28/mese (ottimizzato)

FAQ

Quanto spazio risparmio realmente con backup differenziali rispetto a completi?

Dipende dal tasso di modifica del sito. Per un sito WordPress tipico con contenuti aggiornati giornalmente, il risparmio è del 40-60% rispetto a backup completi giornalieri. Un e-commerce con molte transazioni può vedere solo 20-30% di risparmio, mentre un sito quasi statico può arrivare all’80%. Il vantaggio maggiore si ottiene con cicli settimanali: un completo + 6 differenziali occupa circa la metà dello spazio di 7 backup completi.

Il backup differenziale rallenta il mio sito WordPress durante l’esecuzione?

L’impatto dipende dall’implementazione. Un backup differenziale ben configurato con rsync e ionice/nice ha impatto minimo (2-5% CPU). Il database è il collo di bottiglia: usa sempre --single-transaction con mysqldump per evitare lock delle tabelle. Se usi plugin, alcuni (come UpdraftPlus) possono causare picchi di CPU del 30-40% su shared hosting. Pianifica i backup in orari di basso traffico e monitora con tools come New Relic o Query Monitor.

Ogni quanto devo fare un backup completo nel ciclo differenziale?

La best practice è un backup completo ogni 7-14 giorni. Oltre le due settimane, i backup differenziali diventano troppo grandi (spesso 60-80% della dimensione del completo) e il restore si allunga. Per siti ad alta frequenza di modifica (WooCommerce, membership), considera cicli di 5-7 giorni. Per siti statici o quasi, anche 21-30 giorni sono accettabili. Monitora la dimensione: se il differenziale supera il 70% del completo, è tempo di un nuovo ciclo.

Come testo che i miei backup differenziali funzionino davvero?

Automazione e disciplina. Implementa restore test mensili automatici in ambiente staging: estrai il backup completo, applica l’ultimo differenziale, verifica che WordPress si avvii correttamente e che contenuti recenti siano presenti. Usa script di validazione che verifichino checksum e integrità degli archivi. Monitora le metriche: se il tasso di successo scende sotto il 98% o i tempi di backup aumentano anomalmente, indaga. In AgencyPilot abbiamo test automatici ogni 30 giorni con notifica Slack dei risultati.

Differenziale o incrementale: quale scegliere per un’agenzia?

Per agenzie, il differenziale è generalmente più pratico. Il vantaggio chiave è il restore semplificato: servono solo due archivi (completo + ultimo differenziale) invece di una catena completa. Questo riduce rischi di errore e complessità operativa quando un cliente ha urgenza. L’incrementale risparmia più spazio (15-25% in più) ma richiede tutti gli archivi della catena per il restore. Se gestisci 50+ siti, la semplicità del differenziale vale il costo extra di storage. Usa incrementale solo se hai vincoli severi di banda/storage e competenze DevOps solide per gestire catene di restore complesse.

Gestisci i siti WordPress dei tuoi clienti?

AgencyPilot ti dà report AI, uptime monitoring, backup e portale clienti in un’unica dashboard. Gratis per 3 siti.

Prova gratis
Leggi anche
Tutti gli articoli
Tutti gli articoli