Home > MySQL, Programmazione e scripting, Server > Shell script per fare un backup incrementale del database MySQL

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.sql

chmod 600 /var/backupdb/ -R

/usr/bin/find /var/backupdb/ -type f -mtime +93 -exec rm -f {} \;

  1. 24 agosto 2009 a 19:47 | #1

    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.

  2. 28 settembre 2009 a 18:27 | #2

    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?

  3. 29 settembre 2009 a 6:14 | #3

    @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

  1. Nessun trackback ancora...