#!/bin/bash ########## # THIS FILE IS MANAGED BY ANSIBLE # ANY MODIFICATION IS LIKELY TO BE ERASED ########## ############################################## # Nom : backup_mysql.sh # Objet : Dump les bases mysql # listees dans $backup_db_list # dans le dossier $backup_dump_path, un sous-dossier par base ############################################### # Chemin de stockage des dump backup_dump_path="/srv/backup/mysql/" # Liste des bases a sauvegarder séparées par des espaces backup_db_list=`echo -n 'show databases' | mysql | grep -v Database | grep -v _schema` # Verifie que backup_dump_path existe, on crée sinon if [ ! -d $backup_dump_path ] ; then mkdir -p $backup_dump_path ; fi # On se deplace dans le dossier, et on purge les fichiers plus vieux que backup_max_age cd $backup_dump_path mysqlcheck --all-databases > /srv/mysql/check # Pour chaque base a sauvegarder for backup_db_name in $backup_db_list do # Verifie si un dossier existe pour cette base, on cree si non if [ ! -d ./$backup_db_name ] ; then mkdir ./$backup_db_name ; fi cd ./$backup_db_name # On dump mysqldump --events $backup_db_name | gzip > $backup_db_name.sql.gz cd .. done # On s'assure que nimporte qui ne peut lire les dump chmod a-rwx,u+rwX -R $backup_dump_path