due chiacchiere

Un backup più intelligente per WordPress

Si conclude oggi il cammino intrapreso più o meno un mese fa, durante il quale abbiamo esplorato vari strumenti per consolidare l’ambiente su cui costruire il tuo sito web. Dopo aver visto come versionare il codice ed organizzare un flusso di lavoro per la gestione dei dati e dei permessi, ho pensato che la proverbiale ciliegina sulla torta potesse essere un sistema per salvare copie di sicurezza intelligenti, che faccia leva sugli altri strumenti visti in precedenza. Già, perché a fare un dump del database siamo buoni tutti, ma poi come posso sapere in maniera semplice e veloce quale versione di un certo tema o plugin era attiva con quella versione dei dati che sto per ripristinare? Cosa succede se nel frattempo la struttura di questi dati è cambiata, ed il plugin cerca di leggere qualcosa che non esiste più? Non sarebbe bello poter avere un backup che non solo salva il database, ma annota anche tutte le versioni di temi e plugin attive in quel momento?

Per renderti la vita più facile, ho creato un repository su Github, dove troverai due file backup.sh e restore.sh, che implementano proprio questa funzione, con l’aiuto di wp-cli. In breve, il backup crea un file compresso che contiene il classico dump, ma anche tre file testuali, uno che memorizza quale versione di WordPress è attiva, il secondo elenca tutti i plugin attivi e le loro versioni, ed il terzo come puoi immaginare, fa lo stesso per i temi. Non è nulla di rivoluzionario, e probabilmente altri hanno messo insieme soluzioni più raffinate e flessibili, ma quello che conta è l’idea di base. A questo punto, il ripristino ha bisogno di sapere dove trovare i repository per ripristinare le versioni giuste di temi e plugin (nel caso la cartella corrispondente non sia presente sul server, cancellata dal malintenzionato di turno), e poi si mette a leggere quei file e rimette tutto a posto nel giro di pochi minuti.

Ricorda di non farti cogliere impreparato quando si tratta di backup and ripristino: pianifica almeno una volta ogni sei mesi un giorno dove farai una simulazione di un attacco, ad esempio cancellando un plugin o modificando un file, e poi esegui lo script che ripulisce il tuo tentativo maldestro di rompere tutto. Per facilitarmi la vita, ho chiesto al sistemista di crearmi un database extra, oltre a quello vero e proprio dove tengo i dati in produzione. In genere questo database è vuoto, senza nessuna tabella al suo interno. Quando è il momento di effettuare la simulazione, punto WordPress a questo database e lancio lo script che ripristina tutto, e vedo che succede. Se tutto va a buon fine, so che posso dormire sonni tranquilli per i prossimi mesi, altrimenti comincio a spulciare i vari log per capire cosa è successo e come sistemare il problema.

Come vedi, le soluzioni che ho ingegnato non sono particolarmente complesse e non richiedono un livello di conoscenze elevato: sarà che a me piace sempre trovare la via più semplice, sebbene non necessariamente la più elegante, per risolvere un problema. Ma se conosci altri sistemi simili, non indugiare a segnalarli in un commento qui di seguito.

 

Lascia un commento