Script de sauvegarde des bases de données MySQL sous Linux

Il n’est plus, je l’espère, utile de parler de l’importance des sauvegardes. J’ai donc bricolé il y a quelques années un script sauvegardant l’ensemble de mes bases de données MySQL. Il s’agit de simples « dump » de chaque base effectués par mysqldump, et stocké sur le disque. Chaque dump comporte dans son nom les jours mois et année de la sauvegarde. Un compteur supprime les sauvegardes jugées trop anciennes. Il existe bien sûr des logiciels performants, dont certains sont même open source, mais après quelques années de bons et loyaux services, mon petit script me convient, et je n’ai pas besoin de plus.

Le script est téléchargeable ici : backup_mysql.sh

et voici les variables qui peuvent être modifiées.
MYSQLUSER= Utilisateur MySQL disposant des privilèges adéquat sur les bases de données à sauvegarder.
MYSQLPASS= Mot de passe de l’utilisateur
MYSQLHOST= Hôte des bases de données
MYSQLPORT= Port d’écoute de MySQL
MYSQLDUMPOPTS= Les options passées en argument à mysqldump. Vous pouvez en ajouter si nécessaire.
BACKUPDIR= Répertoire dans lequel seront stockés les fichier .sql (dumps)
count= »14″ Nombre de jours à concerver. Les sauvegardes de plus que 14 jours seront supprimées.
LOGFILE= Chemin du fichier de journalisation des sauvegardes.

Le script s’exécute quotidiennement à 4h01 via cron. Pour ce faire, on edite la crontab de l’utilisateur qui disposes des privilèges sur les répertoires de sauvegarde et de journalisation définis dans les variables.

crontab -e

On renseigne la ligne

1 4 * * * /scripts/backup/backup_mysql.sh

Et on enregistre. Et voilà. Je me suis servis plusieurs fois de ce script en ajoutant un transfert des dumps sur un partage CIFS, SFTP ou en utilisant RSYNC afin de les délocaliser. C’est au choix de chacun.