Performancing Metrics

solutioncafe IT

Il System Architect è il punto di unione tra IT, processi aziendali, e esigenze del cliente

feb
2009
23

Uno dei principali tool messi a disposizione all’amministratore di MySQL per effettuare il backup dei dati è mysqldump.
mysqldump è molto versatile, permette di effettuare backup in formato ASCII contenenti le istruzioni SQL dal quale è possibile ripristinare il database da zero oppure, apportandone semplici modifiche, ripristinare la singola tabella.
Un altro vantaggio dei backup creati con mysqldump è rappresentato dal fatto che possono essere ripristinati su piattaforme diverse dall’originale.
Di seguito ecco illustrato uno script per effettuare il backup di tutti i database MySql del vostro server Linux.

#!/bin/bash

ADMINUSER="backup"
ADMINPASS="password"
SERVERNAME=`uname -n`

MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
MUTT="$(which mutt)"
GZIP="$(which gzip)"

NOW=`date +%Y%m%d%H%M`
DUMPDIR=/opt/dumpdb
MAILINGLIST=mysql@vostrodominio.it

RETVAL=0

# SKIPPED BACKUP LIST
SKIP=""

[ ! -d $DUMPDIR ] && mkdir -p $DUMPDIR || :

$CHOWN root.root -R $DUMPDIR
$CHMOD 0600 $DUMPDIR

DBLIST="$($MYSQL -u $ADMINUSER -h $SERVERNAME -p$ADMINPASS
-Bse 'show databases')"

for db in $DBLIST
do
        skipdb=-1
        if [ "$SKIP" != "" ]
        then
                for i in $SKIP
                do
                        [ "$db" == "$i" ] && skipdb=1 || :
                done
        fi

        if [ "$skipdb" == "-1" ]
        then
                FILE="$DUMPDIR/$db.sql.$SERVERNAME.$NOW.gz"
                $MYSQLDUMP -u $ADMINUSER -h $SERVERNAME
-p$ADMINPASS $db | $GZIP -9 > $FILE
                RETVAL=$?
                if [ $RETVAL -eq 0 ]
                then
                 # Cancella i file con data superiore a 7 GG
                 find $DUMPDIR -name $db.sql.$SERVERNAME.*
-mtime +7 \! -type d -exec rm -f {} \;

                        $MUTT -s "Dump database $db on
$SERVERNAME --> OK" -a $FILE $MAILINGLIST < /dev/null
                else
                        $MUTT -s "Dump database $db on
$SERVERNAME --> FALLITO"  $MAILINGLIST < /dev/null
                fi
        fi
done
Tag:

Scrivi un commento

feb
2009
20

Per mantenere la directory log pulita, avendo cura di cancellare solo i files ritenuti obsoleti dopo il periodo di ritenzione da voi stabilito (es. 15 giorni), potete pianificare l’esecuzione giornaliera del seguente comando.

$ find /var/log -mtime +15 \! -type d -exec rm -f {} \;
Tag:

Scrivi un commento

Banner