From 1a79521ad396e62a69fa9aa645a84818976eddc4 Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Tue, 6 Jun 2017 10:28:12 +0200 Subject: [PATCH] initial commit --- mysql_backup.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 mysql_backup.sh diff --git a/mysql_backup.sh b/mysql_backup.sh new file mode 100755 index 0000000..3ea7e6f --- /dev/null +++ b/mysql_backup.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# script de sauvegarde mysql +# pour version 5.7, ne sauvegarde pas la base information_schema +# sauvegarde également les privilèges + +rotate=15 +defaultfile=/root/.my.cnf +rdir=${1:-/root/backups/mysql} +dir=${rdir}/$(date "+%Y.%m.%d") +error=0 +mkdir -p $dir +cd $dir + +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} --single-transaction --events --databases $b --opt > ${b}.sql + let "error=$error+$?" + gzip --force ${b}.sql +done + +mysql --defaults-file=${defaultfile} -BNe "select concat('\'',user,'\'@\'',host,'\'') from mysql.user where user != 'root'" | \ +while read uh; do mysql --defaults-file=${defaultfile} -BNe "show grants for $uh" | sed 's/ $/;/; s/\\\\/\\/g'; done > grants.sql + +if [ $error -eq 0 ] ; then + find $rdir -maxdepth 1 -type d -mtime +${rotate} -exec rm -fr {} \; +fi +exit $error +