Come eseguire il backup e il ripristino del tuo sito web

Pubblicato: 2018-05-07

Durante la creazione del tuo sito web aziendale, la prima cosa di cui generalmente ti preoccupi è rendere il tuo sito attivo e funzionante; ci vuole molto lavoro, l'importante è che tutto funzioni.

Quindi tutto funziona senza intoppi e all'improvviso succede qualcosa. È andato. Mancano i tuoi file.

Se hai creato il tuo sito web su un server locale, potresti sentire di avere già un backup. Hai tutto in due posti, giusto? I file esistono sul server e sul tuo computer.

Cosa potrebbe andare storto?

Non ci vuole molta immaginazione per pensare a cosa potrebbe accadere. Il tuo computer si spegne per qualche motivo, che si tratti di un aumento di tensione inaspettato o che tuo figlio di 3 anni decida che è divertente versare il latte nel tuo laptop. Ma ehi, lo hai archiviato sul server, quindi perché dovresti preoccuparti, giusto?

Non così in fretta….

Cosa succede se il server ha un problema o quel provider di hosting super economico e apparentemente affidabile va in fallimento senza preavviso? Che dire del fatto che il tuo sito web gestisce un database? Hai una copia esatta di ogni file sul tuo computer?

È qui che il backup di un sito Web diventa importante!

In questo articolo tratterò tutto ciò che devi sapere sul backup del tuo sito web, inclusi perché, cosa e come.

Perché eseguire il backup del tuo sito web?

Esistono diversi motivi per cui dovresti eseguire il backup del tuo sito web.

1. Malware/Randsomware

Senza entrare troppo nei dettagli, non esiste un sistema completamente sicuro. Non importa quante procedure e protocolli di sicurezza metti in atto, tutti i sistemi sono vulnerabili.

Sebbene esistano diversi livelli di sicurezza, alcuni sistemi sono più vulnerabili di altri. È praticamente impossibile proteggere il tuo sito web da tutti i tipi di attacchi, e lo è ancora di più se ti aspetti effettivamente che le persone utilizzino il tuo sito.

Pensa a questa come a casa tua; potresti sigillarlo come Fort Knox, ma poi nessuno potrebbe entrare, quindi devi avere delle porte. Sicuramente le tue porte hanno buone serrature, ma qualcuno potrebbe sempre entrare da una finestra.

Il punto più debole di ogni sistema sono gli esseri umani. Basta un clic sbagliato o la risposta a quella che sembrava un'e-mail importante per soccombere a un attacco di phishing. Una volta che qualcuno entra nel tuo sistema, tramite software o in altro modo, è possibile che possa prendere il controllo dei tuoi file a scopo di riscatto.

Invece di dover sborsare soldi a qualche sconosciuto che potrebbe o meno restituire il tuo sito o i tuoi file, sei molto meno vulnerabile se ne hai una copia.

2. File cancellati/Comandi errati/Errori umani

Qualcosa di semplice come eliminare il file sbagliato sul tuo server, con un semplice "clic/elimina" su Windows/Mac, o una riga di comando in Linux o suoi derivati ​​potrebbe cancellare un file chiave o tutti i file.

(In Linux, il comando rm -r nomedirettore rimuove una directory e tutti i file in essa contenuti, spesso senza conferma, peggio ancora, rm -rf / può eliminare anche i file di sola lettura e tutto dalla radice, il che essenzialmente ucciderà il tuo tutta la macchina!).

3. Hack

Il comportamento dannoso è più comune di quanto vorremmo. A volte non è nemmeno semplice come un malware o un attacco di tipo ransomware; ci sono molti là fuori che hackerano i siti web come sport. Anche se il contenuto del tuo sito web è qualcosa che potresti non ritenere di grande valore per un hacker, ciò può comunque verificarsi.

Questo è particolarmente un rischio per coloro che utilizzano piattaforme popolari come WordPress, che hanno molti punti deboli ben documentati che, se non corretti, ti lasciano con un grosso bersaglio sulle spalle.

4. Cattivo sviluppatore/dipendente/chiunque sia

Molte aziende fanno molto affidamento su terze parti per progettare i nostri siti. Nella maggior parte dei casi, gli sviluppatori web sono onesti quanto il resto di noi. La maggior parte (come <smile>il sottoscritto</smile>) sono persone fantastiche e oneste (e modeste!).

Tuttavia, forse ti trovi in ​​una controversia di pagamento? Le persone che sono persone variano ampiamente quando si tratta di ciò che considerano un comportamento etico. È molto facile per un dipendente arrabbiato (o malvagio) che ha accesso al back-end del tuo sito web semplicemente chiudere il sito se non è soddisfatto o per qualsiasi motivo.

Questo è qualcosa a cui non ci piace pensare, ma generalmente è una buona idea essere sicuri.

5. Arresti anomali del server

La tecnologia è fantastica quando funziona. Nella maggior parte dei casi, soprattutto se utilizzi una società di hosting solida e rispettabile, è raro che si verifichi un arresto anomalo del server in cui i tuoi dati vengano cancellati.

Ma anche i migliori fornitori hanno problemi.

Inoltre, in molti casi al giorno d'oggi, è probabile che il tuo sito sia ospitato su un server virtuale . In altre parole, i tuoi dati non sono su un computer fisico indipendente, ma condivisi con molte altre persone o aziende. È molto comune che i provider di hosting ospitino molte istanze “virtuali” diverse su un server fisico.

Per la maggior parte delle società di web hosting economiche, questo è più comune che no e, a meno che tu non sia disposto a sborsare un sacco di soldi per ottenere il tuo server fisico, è molto probabile che condividerai lo spazio. Se qualcosa va storto in un altro segmento, ciò potrebbe influire sul tuo sito e sui tuoi file.

Inoltre, anche se hai ospitato il tuo sito su un server fisico, essenzialmente è ancora solo un computer. Sebbene i server tendano ad essere archiviati in luoghi sicuri, proprio come il tuo computer, c'è sempre la possibilità che qualcosa possa andare storto.

I server possono surriscaldarsi, potrebbe verificarsi un disastro naturale imprevisto, una fluttuazione di potenza esattamente nel momento sbagliato o persino un difetto nascosto del produttore che potrebbe causare la perdita dei dati.

Oltre a ciò, le server farm possono essere un bersaglio per attacchi DDOS (Dedicated Denial of Service) coordinati che in casi estremi possono richiedere un riavvio completo; ciò comporta sempre il rischio potenziale che alcuni o tutti i dati vengano persi.

Per questi motivi, è generalmente una buona idea conservare una copia di tutti i dati cruciali in un altro posto, quindi se uno di questi è possibile, non importa quanto improbabile (varia da caso a caso) si verifichi.

Di cosa dovresti eseguire il backup sul tuo sito web?

I tipi di elementi di cui potresti voler eseguire il backup possono essere suddivisi nelle seguenti categorie:

1. File

Questi sono tutti i file che compongono il tuo sito web. Includono tutte le pagine/script/file CSS, immagini o documenti o qualsiasi contenuto multimediale che costituisce la parte principale del tuo sito web.

Puoi pensare che questi siano contenuti che non cambiano; rimangono come oggetti statici. Di conseguenza, sono in genere le parti del tuo sito più facili da gestire ed eseguire il backup.

2. Banca dati

Come è probabile, la maggior parte dei siti Web utilizza database per archiviare prodotti, singole pagine o altri elementi che potrebbero essere variazioni di contenuti duplicati.

Se il tuo database è in qualche modo statico (ovvero la maggior parte degli elementi sul tuo sito cambia raramente) è relativamente semplice mantenerne il backup, proprio come i file.

Tuttavia, se, come nella maggior parte dei casi, questi contenuti sono fluidi, come post di blog, prodotti, transazioni o qualsiasi altra cosa che cambia o viene aggiunta regolarmente, dovrai trovare un modo per eseguire regolarmente il backup di questi dati.

3. Account di posta elettronica

Se stai memorizzando un record di e-mail o informazioni di contatto degli utenti. Probabilmente disponi anche di un server di posta elettronica completo e di record di tutte le transazioni di posta elettronica tramite il tuo host. Probabilmente vorrai conservare tutti i record delle tue interazioni, e-mail e mailing list utilizzando questo account.

NOTA RAPIDA: se stai memorizzando le informazioni di contatto in un database diverso dal tuo server di posta, dovrai eseguire il backup anche di quello!

Come eseguire il backup del tuo sito web

Eseguire il backup del tuo sito non è particolarmente difficile, ma per iniziare devi capire che esistono diversi metodi. Variano per qualità, affidabilità e facilità (a seconda del livello di abilità). In genere è una buona idea usarne più di uno.

1. Attraverso il tuo host web

Qualsiasi buon host web dovrebbe creare un backup automatico di tutti i file sul server web. L'host web dovrebbe farlo internamente e in genere eseguirà backup giornalieri indipendentemente da ciò che fai.

Quindi dovresti essere in grado di ricorrere al backup del tuo host web se dovesse succedere qualcosa.

Tuttavia, gli host web in genere non conservano più versioni di backup e sei alla loro mercé. Avranno una sorta di strumento per creare manualmente i propri backup.

Ad esempio, puoi creare facilmente un backup completo del tuo sito web tramite cPanel, un pannello di controllo comune utilizzato dalla maggior parte degli host web.

Backup manuali del sito Web tramite cPanel

Per utilizzare gli strumenti di backup del tuo server, dovrai chiedere al tuo provider e leggere eventuali manuali forniti. In genere i tuoi file verranno archiviati come file compresso e verranno archiviati sul tuo server.

Potrebbe essere necessario specificare il tipo di formato desiderato, a seconda della piattaforma. Forniranno inoltre istruzioni su come ripristinare un backup se necessario.

backup dei file del server web Se il tuo host web fornisce questa copia di backup sul server, assicurati che sia archiviata su un server diverso rispetto al tuo sito web. I server possono bloccarsi!

I vantaggi derivanti dall'utilizzo dei servizi del tuo provider sono abbastanza evidenti; in genere è senza soluzione di continuità con il tuo host.

Tuttavia, gli svantaggi hanno a che fare specificamente con il tuo provider di hosting. Sebbene possano essere eccellenti nell'hosting del tuo sito, non è mai saggio tenere tutte le uova nello stesso paniere.

Se qualcosa va storto, ad esempio se scoppia un incendio nella loro server farm o subiscono una sorta di attacco da parte degli hacker (sì, questo accade occasionalmente; nessuno è immune e i provider di hosting sono gli obiettivi principali).

Per questi e altri motivi, è un'ottima idea scaricare occasionalmente una copia dei file sul tuo computer. Probabilmente vorrai comunque conservare almeno manualmente una copia del tuo sito.

2. Plug-in di backup del sito Web CMS

Se utilizzi un CMS popolare, come WordPress, ci sono molti plugin che puoi installare, come Backup Buddy. Questi sono molto convenienti e tendono ad essere molto facili da installare.

Tuttavia, i plugin di backup possono in genere avere l’effetto negativo di rallentare il tuo sito. Poiché PHP è il linguaggio di programmazione nativo di WordPress, anche la maggior parte dei plugin utilizza PHP.

Anche se questo può essere efficace, può tendere a funzionare lentamente, il che significa che potrebbero rallentare il tuo sito durante il processo di esecuzione (in genere verranno eseguiti dallo stesso motore che sta producendo il tuo sito), inoltre aggiungono disordine al tuo sito, ed è anche un'astrazione di livello superiore rispetto all'ideale.

Un altro fattore è che, ironicamente, potresti rendere il tuo sito più vulnerabile. Lo stesso PHP presenta alcuni problemi di sicurezza noti, soprattutto se il codice utilizzato è obsoleto o scritto in modo approssimativo.

A meno che tu non sia assolutamente certo del codice inserito in questi plugin (e sul serio, chi ha tempo di studiare attentamente il codice sorgente di qualcun altro?), il plugin che stai utilizzando per mantenere i tuoi dati al sicuro potrebbe renderli meno sicuri. (Sì, molti sono affidabili e forniscono codice di qualità. Non mi farei prendere dal panico, ma questo è qualcosa da tenere a mente).

Sebbene PHP sia un ottimo linguaggio di programmazione (è tra i miei preferiti e lo uso quotidianamente), è una buona idea mantenere il maggior numero di funzionalità in esecuzione al di fuori di questa piattaforma. In genere se si desidera eseguire backup a livello del sistema operativo.

Se utilizzi Linux o uno qualsiasi dei suoi derivati, probabilmente vorrai eseguire uno script di shell, o un file batch in Windows, o un file macos su un Mac.

3. Backup manuali del sito Web

Molti di noi potrebbero avere familiarità con il metodo “vecchia scuola” di eseguire il backup dei file: creare una copia di tutti i file e inserirli su un disco rigido rimovibile o archiviarli nel cloud.

Questo è essenzialmente lo stesso metodo che utilizzeresti con il tuo sito web, con alcuni avvertimenti.

Naturalmente, se crei il tuo sito web localmente e poi lo trasferisci tramite FTP (o, si spera, SFTP) al tuo host, tecnicamente hai già una copia del tuo sito.

Tuttavia c’è una differenza fondamentale…

Se disponi di un database sul tuo sito, molto probabilmente avrai contenuti diversi localmente (nel database di prova) rispetto a quelli del sito live. Ciò è particolarmente vero se si utilizza una sorta di software CMS (WordPress e simili).

Se questo è il caso, quasi tutto il contenuto del tuo sito è archiviato in un database e non risiede in alcun file, al di fuori del database stesso.

Il backup del database è in realtà relativamente semplice, soprattutto se si utilizza MySQL. Devi semplicemente ottenere un dump SQL del database; che è semplicemente un file di testo semplice che contiene tutto il contenuto del tuo database.

Una volta creato, può essere semplicemente caricato o eseguito come file per ricostruire il database.

Metodo della riga di comando

Questo è relativamente semplice. Il seguente comando eseguirà il backup di un intero database.

$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

Se desideri maggiori dettagli sull'esecuzione di questi e sulle varie opzioni, consulta la documentazione di MySQL

Metodo PhpMyAdmin

Vai alla scheda di esportazione del database, scegli tutte le opzioni di cui hai bisogno (in genere vorrai includere "tabelle di rilascio" e creare opzioni del database per rendere possibile il caricamento di una nuova copia su una versione precedente, ma attenzione all'acquirente... lo farà cancellare veramente i dati esistenti per sostituirli con una nuova copia).

Puoi quindi prendere tutti i file creati (il codice sorgente, il database e le immagini) e comprimerli e conservare le copie dove preferisci (personalmente mi piace utilizzare l'archiviazione cloud come Google Drive o Dropbox).

L'ovvio svantaggio è che devi ricordarti di farlo ed è molto facile dimenticarlo. Quindi, se vuoi fare un ulteriore passo avanti, puoi scrivere script che fanno tutto questo e utilizzare il sistema per eseguirli su base periodica.

In Linux è relativamente semplice eseguire il dump sql tramite riga di comando e quindi eseguire questo script come cronjob, da eseguire una volta al giorno, alla settimana o in qualunque intervallo di tempo desideri.

In Windows è possibile utilizzare un batch e l'utilità di pianificazione integrata. Il mio modo tipico di farlo è eseguire un batch con un dump SQL e quindi una copia in blocco di un'intera directory sul mio account Dropbox.

NOTA RAPIDA: ti consigliamo di pulire periodicamente la directory in cui sono archiviati; mentre i file SQL, che sono file di testo, tendono ad essere piccoli, possono accumularsi nel tempo e se stai eseguendo altri backup di immagini o file multimediali, potresti scoprire che il tuo disco/server sta scoppiando in breve tempo.

4. Servizi di backup del sito web

Naturalmente, gestire tutto questo manualmente può sembrare un po’ opprimente; richiede comunque attenzione e qualcosa di semplice come dimenticare di ripulire una directory può comportare la perdita di file o l'aggiunta di commissioni improvvise al tuo account (Dropbox consente alcuni concerti gratuitamente, ma poi aumenta rapidamente da lì).

Per questo motivo, se gestisci un sito aziendale, probabilmente è una buona idea utilizzare un servizio di backup professionale. Questi in genere faranno tutto quanto menzionato sopra, ma in modo più affidabile.

A differenza dei backup manuali, qualcun altro farà il lavoro per te e si prenderà cura di tutti quei piccoli problemi che potresti incontrare. A differenza dei plugin, verranno eseguiti al di fuori del tuo sito; non è necessario aggiungerli. Non dovrebbero ridurre la velocità di elaborazione e non creeranno alcuna vulnerabilità nella sicurezza mentre lo fanno.

Di seguito è riportato un breve esempio di alcuni servizi di backup popolari. ( Disclaimer : questa non vuole essere nemmeno lontanamente una guida completa, quanto basta per capire cosa c'è là fuori. Non ho testato tutti i servizi menzionati).

  • Sucuri Backups: un'ottima soluzione poiché consigliamo di utilizzare Sucuri per la sicurezza del tuo sito web.
  • CodeGuard
  • BackupGuard
  • Elimina il mio sito

Strategia di backup del sito web: migliori pratiche

Indipendentemente dal metodo scelto, il backup del tuo sito web dovrebbe avere un piano di flusso di lavoro.

Anche se tutti i metodi sopra menzionati funzioneranno, dovrai assolutamente avere una strategia in atto, altrimenti qualsiasi sistema menzionato potrebbe soffrire di gravi vulnerabilità.

Crea una lista di controllo e determina le risposte alle seguenti categorie:

1. Con quale frequenza eseguire il backup del tuo sito web?

Questo è importante. Vuoi eseguire i backup giornalmente o mensilmente?

Potresti prendere in considerazione l'idea di eseguirne uno ogni volta che si verifica una modifica al tuo sito (nuovo prodotto, nuovo post sul blog, ecc.). Dipende da te, ma dovresti assicurarti di avere un piano in atto.

2. Pianificazione automatizzata

In seguito a quanto sopra, l’impostazione di un programma è fondamentale. Come base, probabilmente vorrai impostare una pianificazione per quando verranno eseguiti i backup.

3. Utilizzare l'archiviazione remota

Dove stai memorizzando questi dati? Non vorrai semplicemente conservare delle copie sul tuo server o anche sul tuo laptop. Utilizzerai un disco rigido esterno? La nuvola? Quale servizio cloud?

4. Periodo di ritenzione

Per quanto tempo è necessario conservare le copie di ciascun backup? I file di un anno fa saranno necessari o stanno solo raccogliendo polvere e potranno essere sostituiti da backup più recenti?

5. Crittografia

La sicurezza dei tuoi backup è importante, soprattutto se disponi di informazioni proprietarie (come informazioni riservate sui prezzi dei prodotti o, cosa ancora più importante, record dei clienti).

Avere un piano per mantenere i backup crittografati e protetti (crittografia con chiave privata AES a 256 bit e sicurezza del trasporto TLS/SSL). Ulteriori informazioni sulla crittografia.

6. Archiviare i backup su array RAID

Gli array RAID (array ridondanti di dischi indipendenti) non sono solo una buona idea per creare più copie del tuo sito Web e/o dei tuoi dati, ma migliorano anche le prestazioni.

Forniranno una protezione aggiuntiva nel caso in cui uno dei dischi si guasti. Questa è una funzionalità tipica fornita dai servizi di backup professionali.

7. Ripristino selettivo

Avere una procedura in atto nel caso in cui non sia necessario ripristinare ogni parte del tuo sito. Forse la maggior parte va bene, ma alcuni pezzi potrebbero essere andati perduti.

Ad esempio, se una tabella dei prodotti è danneggiata, devi solo sostituire quella parte nel dump SQL. Questa è in genere un'idea migliore rispetto a cancellare tutto per sostituire un file.

In effetti è un errore comune sostituire tutto se qualcosa va storto. Certo, funzionerà, ma perderai tutto ciò che è accaduto dopo l'ultimo backup.

È meglio identificare se è necessario sostituire tutto. Salva i backup completi come ultima risorsa se tutto il resto fallisce.

Come ripristinare il backup del tuo sito web

Ok, quindi il tuo sito è scomparso, ma hai un backup. Come ripristini il tuo sito dal backup? Questo è relativamente semplice.

Se la copia è archiviata come file zip, è sufficiente decomprimerlo e caricare nuovamente tutti i file nella posizione originale.

Prendi il file SQL (il file di testo che è stato creato durante il dump SQL) e ricrea il database utilizzando la riga di comando o, se utilizzi phpMyAdmin (o qualsiasi altro sistema di gestione del database grafico come MySQL Workbench), e importa il file o copia il tutto in una finestra SQL ed eseguilo.

Provalo localmente e, se tutto funziona, caricalo di nuovo sul server. Dovresti essere di nuovo attivo e funzionante in pochissimo tempo.

Se utilizzi un servizio di backup professionale, questo processo sarà probabilmente ancora più semplice. Qualsiasi servizio decente dovrebbe fornirti gli strumenti per ripristinare il backup, sia esso un ripristino parziale o un ripristino completo del sito.

Suggerimento bonus: utilizzare la messa in scena per lo sviluppo

Oltre al semplice backup dei file esistenti, se stai sviluppando il tuo sito o lavori con un team di sviluppatori potresti prendere in considerazione un sistema di controllo delle versioni per tenere traccia di tutte le fasi durante il processo di sviluppo.

Quando crei il tuo sito, in genere ci saranno versioni e modifiche al modo in cui è progettato il tuo sito. Forse stai riprogettando completamente il tuo sito, ma vorresti conservare una copia del vecchio sito.

Inoltre, come spesso accade, durante lo sviluppo del sito, qualcosa va terribilmente storto ed è necessario ritrovare un file com'era prima che fosse modificato. Ti consigliamo inoltre di mantenere una versione di sviluppo locale del tuo sito per apportare aggiornamenti o modifiche prima di lanciarlo pubblicamente.

È qui che entrano in gioco i sistemi di controllo delle versioni. Sono simili alla creazione di copie di cartelle ogni volta che si apporta una modifica, ma sono molto più organizzate e possono consentire uno sviluppo collaborativo.

Git è uno strumento fantastico per mantenere ben organizzato il processo di sviluppo. Funziona creando buoni backup del codice sia a livello locale, sia anche per essere facilmente spostato avanti e indietro nel cloud per un backup remoto sicuro.

Invece di avere più copie di file in directory diverse; sono archiviati in rami , il che può consentire a più persone di lavorare sui file senza tanti rischi di conflitti.

Quando saranno pronti potranno essere uniti nei rami di sviluppo principali ed eventualmente in un ramo principale per essere distribuiti.

Di seguito sono riportati due dei repository Git più popolari.

  • GitHub è gratuito se sei disposto a condividere il tuo codice sorgente (è Open Source nel suo cuore), ma offre anche repository di codice privato molto convenienti. È anche un ottimo posto per cercare snippet di codice e ospita una grande comunità di sviluppatori
  • BitBucket è simile; pur non essendo una comunità così grande, offrono gratuitamente alcuni repository privati.

Conclusione

Sebbene alcuni metodi presentino vantaggi migliori rispetto ad altri, il backup del tuo sito web è una necessità da non trascurare. Idealmente dovresti considerare l’utilizzo di una combinazione dei metodi sopra menzionati.

Assicurarti di avere copie duplicate dei file ti farà risparmiare un enorme mal di testa in futuro. Anche se non succede nulla di brutto al tuo sito e non ne hai bisogno, pensa al sonno extra che avrai senza preoccuparti.

Fai il backup dei tuoi file sul tuo computer; il tuo sito web dovrebbe seguire le stesse regole.