initial commit
This commit is contained in:
31
mysql_backup.sh
Executable file
31
mysql_backup.sh
Executable file
@@ -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
|
||||||
|
|
||||||
Reference in New Issue
Block a user