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.
Salut,
Si tu recherches un script avec un peu plus de fonctionnalité je te conseille AutoMySQL Backup :
http://sourceforge.net/projects/automysqlbackup/
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 ?
Note: je préfère tout de même la simplicité de mon script.
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
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
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/