2011-03-13 21:42

Voici les quelques lignes que j’utilise pour sauvegarder mes bases de données MySQL sur mon serveur Debian :

#!/bin/sh
# This will dump all your databases

DATE=$(date +%Y%m%d%H%M)

for DB in $(echo "show databases" | mysql --defaults-file=/etc/mysql/debian.cnf -N)
do
        mysqldump --defaults-file=/etc/mysql/debian.cnf $DB > /backup/mysql/${DB}_${DATE}.sql

        gzip /backup/mysql/${DB}_${DATE}.sql
done

# purge old dumps
find /backup/mysql/ -name "*.sql*" -mtime +8 -exec rm -vf {} \;

Vous pouvez le lancer via un cron :

11 1 * * * /usr/local/bin/mysqldump.sh > /tmp/mysqldump.log

De cette manière, toute erreur affichée par le script sera envoyée par mail à l’utilisateur root (adresse configurée dans /etc/aliases).

Sous une autre distribution que Debian, s’il n’existe pas un fichier de mot de passe équivalent dans /etc/mysql/, vous devrez en créer un.

2011-03-13 21:42 · Tags: , ,