2011-03-13 21:42

Here are some lines I’m using to backup my MySQL databases on my Debian server:

#!/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 {} \;

You can run it in a cron:

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

This way any error displayed by the script will be sent by mail to the root user (mail address in /etc/aliases).

If you are not under Debian and there is no password file in /etc/mysql, you should create such file.

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/

    Reply

  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 ?

    Reply

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

    Reply

  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

    Reply

  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

    Reply

  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/

    Reply

Leave a Reply

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