Script pour sauvegarder un serveur MySQL sous Linux ou FreeBSD

Avoir une base de données MySQL c’est bien, la sauvegarder c’est mieux.

Voici un petit script permettant de s’éviter des nuits de sueur après un crash de sa DB.

Le délai de conservation est de 90 jours.

#!/bin/sh

DUMP=/usr/local/bin/mysqldump
MYSQL=/usr/local/bin/mysql
OPTS="--opt"
DATE=`date "+%Y%m%d"`
ARCH_DIR=/root/_archives/mysql
DAYS=90

if [ ! -d $ARCH_DIR ]
then
        echo "error: no archive directory. Please create it or change it."
        exit 1
fi

$DUMP $OPTS  --all-databases | gzip > $ARCH_DIR/db.all.$DATE.sql.gz

if [ $? -ne 0 ]
then
        echo "error: check log"
        exit 2
fi

echo "show databases" | $MYSQL -N | while read db
do
        $DUMP $OPTS $db | gzip > $ARCH_DIR/db.$db.$DATE.sql.gz
done

find $ARCH_DIR -type f -name "db.*" -mtime +$DAYS -exec rm {} \;

exit 0

Ce script est à exécuter en crontab pour avoir une sauvegarde journalière par exemple:

tripaxland4thot# crontab -l
# Daily MySQL DUMP
1 1 * * * /root/_tools/dump_mysql.sh  > /tmp/dump_mysql.log 2>&1

Leave a Reply

Your email address will not be published. Required fields are marked *


six − 5 =