43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
#!/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 > /var/lib/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
|