Backup con mysqldump e FTP

MySQL fornisce uno strumento che permette di fare una copia di backup di uno o più database direttamente da linea di comando. Il programma si chiama mysqldump ed è molto utile specialmente quando si vuole automatizzare la procedura di salvataggio dei propri database.

Quando si fa un backup importante è bene ricordarsi di memorizzare i dati anche su supporti differenti oppure conservare una copia in un posto diverso per evitare di perdere i propri file. Non meno importante è controllare che i dati salvati non siano corrotti ogni volta al fine di non ritrovarsi con dati inutilizzabili al momento del ripristino.

Grazie ad uno script è possibile non solo fare il backup di mysql ma anche di trasferire l’archivio ottenuto su un server FTP remoto.  Oltre al programma mysqldump che viene tipicamente installato insieme ai pacchetti di mysql server è probabile che sia necessario installare un client ftp che opera via linea di comando come ncftpput.

Per installare ncftpput in una distribuzione Debian o Ubuntu basta digitare:

$ sudo apt-get install ncftpput

Verifichiamo che sia installato il programma gzip usando il comando:

$ gzip --version

che dovrà restituire il numero di versione del programma, se ciò non forse è opportuno installarlo.

Ecco lo script da usare:

mysqldump –user=XXXXXXX –password=YYYYY -A | gzip -9c > alldbdb-`date -d yesterday +%Y%m%d`-mysql.gz
ncftpput -u UTENTE -p PASSWORD HOST CARTELLA alldb-`date -d yesterday +%Y%m%d`-mysql.gz

Adesso vediamo in dettaglio i due comandi.

Il primo comando è composto da due parti: la prima serve a fare un backup di tutti i database contenuti in mysql grazie all’opzione -A, dove si trovano XXXXXXX va inserito il nome dell’utente del database che ha privilegi di lettura su tutti i database coinvolti nel backup mentre al posto di YYYYY va inserita la sua password.

La seconda parte del comando fa si che il file che contiene il backup del database venga compresso usando gzip così da  ottenere un archivio più piccolo e più veloce da trasferire via Internet. La stringa date -d yesterday +%Y%m%d è molto utile perchè attribuisce un nome al file che contiene l’anno, il mese e il giorno precedente a quello del backup.

Esempio se oggi è il primo gennaio 2011 e eseguo il backup il file prodotto sarà chiamato alldbdb-20101231-mysql.gz

Il secondo comando serve per collegarsi al server FTP remoto e depositare il backup. UTENTE va sostituito con il login name del server FTP invece PASSWORD va cambiata con la password dell’utente. Al posto di HOST ci va l’indirizzo IP oppure l’indirizzo Internet del server FTP.  CARTELLA rappresenta la directory dove andrà salvato il backup qualora sul server FTP ve ne sia una apposita.

Spero che la descrizione sia abbastanza chiara.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *