#!/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

