Uno script per il backup automatico di MySQL
Chi gestisce un VPS ha la possibilità di eseguire il backup del database di Wordpress in maniera completamente automatizzata, senza fare ricorso a plugin che possono influire sulle prestazione del Blog.
Resta sacrosanto il fatto che un backup non deve risiedere fisicamente sullo stesso server dove è installato il database per un discorso di affidabilità, ma è il primo passo per essere certi di avere un punto di consistenza.
Successivamente si può ricorrere al trasferimento in sFTP per portarsi il backup in locale sul proprio PC.
Andiamo a creare una cartella dedicata al backup nella home del nostro utente, creiamo uno script ad hoc ed inseriamolo in crontab per automatizzare la procedura.
Stabiliamo una connessione in ssh con il nostro VPS e portiamoci nella home, dove devi sostituire nomeutente con il nome dell'utenza che utilizzi per connetterti al server:
cd /home/nomeutente
Creiamo una cartella dedicata al backup
mkdir BCK
Entriamo nella cartella
cd BCK
Ora dobbiamo creare il file backup.sh, dove andiamo poi ad inserire i valori ed i comandi che ci interessano
touch backup.sh
vi backup.sh
Lo script utilizza le variabili user, l'utenza che ha i privilegi sul database di cui vogliamo il backup, la password dell'utenza, l'host su cui è installato MySQL (che lasceremo a localhost, a meno che non si tratti di un server remoto) ed infine il nome del database.
Nelle opzioni successive indichiamo il percorso del backup (la cartella BCK che abbiamo appena creato) ed il formato della data, che andrà ad influire sul file finale, per avere più di un backup, altrimenti andremo sempre a sovrascrivere il precedente.
Poi è il turno del comando vero e proprio, il mysqldump, che utilizza le variabili inserite sopra e produce il file con estensione .sql, che successivamente viene compresso dal comando gzip, che andrà a comprimere il file che avrà come nome finale nomedatabase+data.
Ultimo, ma non per importanza, è stabilire quanti backup vogliamo tenere sul server (nell'esempio 30 giorni). I più vecchi del valore che dichiariamo qui verranno cancellati automaticamente.
#!/bin/bash
# Connessione al database
user="blog_db_user"
password="blog_db_password"
host="localhost"
db_name="blog"
# Altre opzioni
backup_path="/home/nomeutente/BCK"
date=$(date +"%d-%b-%Y")
# FIle permission
umask 177
# Dump database in un file SQL
mysqldump --user=$user --password=$password --host=$host --databases $db_name > $backup_path/$db_name-$date.sql
# Compressione del file SQL
gzip -f $db_name-$date.sql
# Cancello i backup più vecchi di 30 giorni
find $backup_path/*.gz -mtime +30 -exec rm {} \;
Salviamo il file premendo in sequenza Esc : w q : e rendiamo eseguibile il file.
chmod a+x backup.sh
Ora non ci resta che inserirlo in crontab (fai riferimento alla versione del sistema operativo in uso) e schedulare ogni quanto lo script dovrà eseguire il backup del database.
arulajeh.id Situs Berita Terbaru Dan Terbaik

Tambahkan Komentar