Come Eseguire un Backup Completo del Sito WordPress con uno Script Bash
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_PASSWORDeSITE_DIRcon i tuoi dati. - Rendi eseguibile lo script con il comando
chmod +x backup_wordpress.sh. - Esegui lo script manualmente con
./backup_wordpress.sho 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.