From a3f5acdaa55acddeba1f66bbe4fd4d6d68a52ecc Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Sat, 8 Jan 2022 11:44:12 +0100 Subject: [PATCH] check if server use log_bin and backup up master data accordingly --- mysql_backup.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 -