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.