shell脚本如何批量备份数据库

vim backup_db
#!/bin/bash

mysql_host="192.168.1.12"
mysql_user="sige"
mysql_passwd="Sige123"

date=$(date +%Y-%m-%d)

bak=/data/backup/


#备份的数据库数组
db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)
#不需要备份的单例数据库

nodeldb1="performance_schema"

nodeldb2="Database"

nodeldb3="information_schema"

nodeldb4="mysql"


#进入到备份目录
cd $bak


#循环备份
for dbname in ${db_arr}
do
    if [ $dbname != $nodeldb1 -a $dbname != $nodeldb2 -a $dbname != $nodeldb3 -a $dbname != $nodeldb4 ]; then
        sqlfile=$dbname-$date".sql"

        mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host  --default-character-set=utf8 $dbname >$sqlfile
    fi
done

 

#tar打包所有的sql文件
tar -zcf  $sqlfile.tar.gz   $sqlfile
rm -f  $sqlfile

find . -type f -mtime +5 | grep -v backup_db | xargs rm -rf
find . -type f -size 0c | xargs rm -rf


本文出自 “Linux运维之道” 博客,谢绝转载!

你可能感兴趣的:(mysql,数据库,如何,databases)