Shell script per fare un backup incrementale del database MySQL
Questo script puo’ essere eseguito tramite il cron di sistema per fare un backup incrementale di un database. Nel nostro esempio verra fatto un dump del databse chiamato DATABASE_UNO e una copia di una sola tabella del database DATABASE_DUE. Tutti i backup piu’ vecchi di 3 mesi verranno cancellati:
#!/bin/bash
DATA=`/bin/date +”Giorno_%d-%m-%y_Ora_%H-%M”`
/usr/bin/mysqldump -uUTENTE -pPASSWORD DATABASE_UNO > /var/backupdb/DATABASE_UNO_$DATA.sql
/usr/bin/mysqldump -uUTENTE -pPASSWORD DATABASE_DUE TABELLA > /var/backupdb/TABELLA_$DATA.sqlchmod 600 /var/backupdb/ -R
/usr/bin/find /var/backupdb/ -type f -mtime +93 -exec rm -f {} \;



Il problema si ha quando si vuole fare la stessa operazione su sistema operativo Windows. In effetti andrebbe schedulata un’operazione direttamente da windows su “Operazioni pianificate”. L’ideale e’ costruire uno script .bat che effettui questa operazione:
——————————————
set dt=%date:~6,4%-%date:~3,2%-%date:~0,2%
mysqldump -uUser1 -pPassword1 –opt Database1 > c:\backup\Database1-%dt%.sql
mysqldump -uUser2 -pPassword2 –opt Database2 > c:\backup\Database2-%dt%.sql
——————————————
Dopodiche’ nello schedule si puo’ definire la periodicita’ di esecuzione del backup a seconda delle esigenze.
Ma come fare il backup (automatico) di un db su un host remoto dove è inibita la shell e l’unica applicazione permessa per la gestione dei db è PhpMyAdmin? Ovviamente il tuo script è per un db in locale. Giusto?
@Marco
Ciao Marco,
lo script in oggetto consente di effettuare backup sia di database locali che remoti. In quest’ultimo caso pero’, il server mysqld deve essere configurato per accettare connessioni da parte di un host esterno alla propria rete. Probabilmente il servizio che ti viene offerto dalla tua web farm non permette tale gestione. Ti consiglio di contattare il loro reparto tecnico per verificare la cosa. A titolo informativo ti invio la URL di un nostro articolo che parla proprio di questo:
http://www.deec.it/2009/09/11/connessioni-da-remoto-con-mysql/
un saluto,
Luca