#!/bin/bash
backupdir=/data/backup/db/sql
idatetime=`date +%Y%m%d_%H%M%S`
#表名称
sysTablePrefix='base_ biz_ crm_ d_ data_ dsj_ h_ qrtz_ third_'
tablePrefix=$(docker exec -i mysql mysql -u用户名 -p密码 数据库 -Bse "自定义SQL查询表前缀")
mkdir -p ${backupdir}/$(date +%Y%m%d)
echo '>>>>>>>>>>'$(date)'文件夹创建成功'
echo '>>>>>>>>>>数据库备份开始,当前时间:'$idatetime
for sysTable in $sysTablePrefix; do
docker exec -i mysql mysqldump -u用户名 -p密码 --single-transaction --master-data --quick --default-character-set=utf8 数据库 $(docker exec -i mysql mysql -u用户名 -p密码 数据库 -Bse "show tables like '${sysTable}%'")| gzip > ${backupdir}/$(date +%Y%m%d)/数据库_${sysTable}${idatetime}.sql.gz
echo '>>>>>>>>>>'${sysTable}'数据库备份结束,当前时间:'$(date +%Y%m%d_%H%M%S)
done
echo '>>>>>>>>>>系统表备份结束,当前时间:'$idatetime
for table in $tablePrefix; do
docker exec -i mysql mysqldump -u用户名 -p密码 --single-transaction --master-data --quick --default-character-set=utf8 cloudpivot $(docker exec -i mysql mysql -u用户名 -p密码 数据库 -Bse "show tables like '${table}%'")| gzip > ${backupdir}/$(date +%Y%m%d)/数据库_${table}_${idatetime}.sql.gz
echo '>>>>>>>>>>'${table}'数据库备份结束,当前时间:'$(date +%Y%m%d_%H%M%S)
done
-- 保留15天的备份记录
find ${backupdir} -type d -mtime +15 -exec rm -rf {} ;
echo '>>>>>>>>>>数据库备份结束,当前时间:'$(date +%Y%m%d_%H%M%S)