diff --git a/mysql_backup.sh b/mysql_backup.sh index 1aa3892..ffc066d 100755 --- a/mysql_backup.sh +++ b/mysql_backup.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#! /bin/bash # script de sauvegarde mysql # pour version 5.7, ne sauvegarde pas la base information_schema @@ -12,11 +12,17 @@ error=0 mkdir -p $dir cd $dir +# check if we use binlog + +log_bin=$(mysql --defaults-file=${defaultfile} --batch -e "show variables like 'log_bin'" --skip-column-names| awk '{print $2}') + +if [ log_bin='OFF' ] ; then master_data_option='' ; else master_data_option='--master-data=2' ; fi + bases=$(mysql --defaults-file=${defaultfile} --batch -e 'show databases' --skip-column-names) for b in $bases ; do if [ "$b" == "information_schema" ] ; then continue ; fi if [ "$b" == "performance_schema" ] ; then continue ; fi - mysqldump --defaults-file=${defaultfile} --master-data=2 --single-transaction --events --databases $b --opt > ${b}.sql + mysqldump --defaults-file=${defaultfile} --single-transaction $master_data_option --events --routines --databases $b --opt > ${b}.sql let "error=$error+$?" gzip --force ${b}.sql done @@ -28,4 +34,3 @@ if [ $error -eq 0 ] ; then find $rdir -maxdepth 1 -type d -mtime +${rotate} -exec rm -fr {} \; fi exit $error -