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: , ,

6 Comments

  1. Salut,

    Si tu recherches un script avec un peu plus de fonctionnalité je te conseille AutoMySQL Backup :

    http://sourceforge.net/projects/automysqlbackup/

    Répondre

  2. Merci pour l’info, je ne connaissais pas. Il existe même un paquet Debian.

    Par contre je n’ai pas trouvé de moyen de configurer facilement la durée de rétention des dumps dans automysqbackup.
    À moins de modifier le script ?

    Répondre

  3. Note: je préfère tout de même la simplicité de mon script.

    Répondre

  4. Hello Marc,

    Personnellement j’utilise backup manager http://doc.ubuntu-fr.org/backup-manager
    C’est un peu plus poussé qu’un simple dump, mais ça permet de faire pas mal de choses au niveau des sauvegardes.

    Librement

    Répondre

  5. J’utilise plus ou moins la même chose sur mon ordinateur personnel pour sauvegarder les BDD de mes projets. Voilà une version en Batch que j’ai couplé à une tâche Cron qui s’execute tous les jours à 2h du matin :
    @echo off
    cd c:\wamp\bin\mysql\mysql5.5.8\bin\ && mysqldump -f -u root –password= -h localhost -A > c:\wamp\bin\mysql\mysql5.5.8\backup\MySQL_Daily_Backup.sql

    Répondre

  6. Tiens, j’ai à peu de chose pres fait la même chose dans mon script de backup. parcontre, je fais ca en deux temps, vu que je l’utilise pour la sauvegarde de mes fichiers également.

    Je sauvegarde /var/lib/mysql sous forme de fichier.
    Et je fais un mysqldump –all-databases pour n’avoir qu’un .sql.gz.

    Je t’invite à regarder ce que ca donne sur http://blog.m0le.net/2012/02/17/le-petit-script-de-backup-de-nono/

    Répondre

Leave a Reply to Nono Cancel reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>