Come Eseguire un Backup Completo del Sito WordPress con uno Script Bash
di Simone Cirone4 min di lettura
Perché automatizzare il backup di WordPress (file + database MySQL)
Eseguire un backup completo del tuo sito WordPress è un’attività fondamentale per garantire la sicurezza e l’integrità dei tuoi dati. In questo articolo, ti presenteremo uno script Bash che automatizza il processo di backup, salvando sia i file del sito che il database MySQL. Automatizzare questa operazione ti permetterà di risparmiare tempo e assicurarti che i tuoi dati siano sempre protetti, anche in caso di errori o attacchi imprevisti.
Codice dello Script
#!/bin/bash
# Parametri di configurazione
BACKUP_DIR="/path/to/backup"
DB_NAME="your_database_name"
DB_USER="your_database_user"
DB_PASSWORD="your_database_password"
SITE_DIR="/path/to/wordpress"
DATE=$(date +"%Y%m%d%H%M")
# Backup del database
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
# Backup dei file del sito
tar -czf $BACKUP_DIR/site_backup_$DATE.tar.gz -C $SITE_DIR .
# Rimuovi backup più vecchi di 30 giorni
find $BACKUP_DIR -type f -mtime +30 -delete
# Disclaimer: Codice creato da Evo Sistemi di Cirone Simone, info@evosistemi.com, www.evosistemi.com, +39 3662025885
Spiegazione Dettagliata
Analizziamo il codice riga per riga per comprendere meglio come funziona e come puoi personalizzarlo per le tue esigenze:
BACKUP_DIR: Questa variabile definisce la directory in cui verranno salvati i file di backup. Modificala con il percorso desiderato sul tuo server.
DB_NAME, DB_USER, DB_PASSWORD: Specifica il nome del database, il nome utente e la password utilizzati per l’accesso al database MySQL del tuo sito WordPress.
SITE_DIR: Indica il percorso della directory principale del tuo sito WordPress.
DATE: Crea un timestamp unico che verrà aggiunto ai nomi dei file di backup, rendendo ogni backup facilmente identificabile.
mysqldump: Questo comando effettua un backup completo del database MySQL, salvandolo come file SQL nella directory specificata.
tar -czf: Crea un archivio compresso (.tar.gz) di tutti i file del sito WordPress.
find … -delete: Rimuove automaticamente i backup più vecchi di 30 giorni per risparmiare spazio sul disco.
Guida Passo-Passo per l’Esecuzione dello Script
Crea un nuovo file Bash sul tuo server, ad esempio backup_wordpress.sh.
Copia e incolla il codice sopra riportato nel file.
Modifica le variabili BACKUP_DIR, DB_NAME, DB_USER, DB_PASSWORD e SITE_DIR con i tuoi dati.
Rendi eseguibile lo script con il comando chmod +x backup_wordpress.sh.
Esegui lo script manualmente con ./backup_wordpress.sh o programma un cron job per eseguirlo automaticamente su base regolare (es. giornaliera o settimanale).
In caso di dubbi o difficoltà nell’implementazione dello script, non esitare a contattare Evo Sistemi di Cirone Simone. Dalla nostra sede di Perugia seguiamo aziende e professionisti di Umbria e centro Italia con un servizio di manutenzione del sito WordPress che include backup automatici, aggiornamenti controllati e ripristino rapido in caso di problemi.
FAQ
Posso modificare la frequenza con cui vengono eseguiti i backup?
Sì, puoi configurare un cron job per eseguire lo script a intervalli regolari, in base alle tue esigenze.
Dove vengono salvati i file di backup?
I file di backup vengono salvati nella directory specificata dalla variabile BACKUP_DIR. Assicurati che questa directory sia accessibile e sicura.
Come posso ripristinare un backup?
Il ripristino avviene in due passaggi, speculari al backup. Prima si ricrea il database importando il dump SQL: assicurati che il database di destinazione esista (eventualmente con mysql -u $DB_USER -p -e "CREATE DATABASE nome_db;") e poi lancia mysql -u $DB_USER -p$DB_PASSWORD $DB_NAME < $BACKUP_DIR/db_backup_AAAAMMGGHHMM.sql, sostituendo il nome file con quello del backup che vuoi recuperare. Quindi si ripristinano i file del sito decomprimendo l’archivio nella cartella di WordPress con tar -xzf $BACKUP_DIR/site_backup_AAAAMMGGHHMM.tar.gz -C $SITE_DIR. Al termine verifica il file wp-config.php (credenziali e prefisso tabelle) e, se il dominio o il percorso sono cambiati, aggiorna gli URL nel database prima di rimettere il sito online. In ambienti di produzione conviene provare prima il ripristino su una copia di staging: contatta Evo Sistemi di Cirone Simone per assistenza dettagliata nel processo di ripristino.