脚本内容
#!/bin/bash
#存放备份文件的路径
data_dir="/data/mysql/mysql_backup/"
#备份日志
logs_dir="/data/mysql/mysql_backup/logs"
#判断备份路径文件是否存在
if [ ! -d ${data_dir} ];then
mkdir -p ${data_dir}
else
echo dir exist
fi
if [ ! -d ${logs_dir} ];then
mkdir -p ${logs_dir}
else
echo dir exist
fi
#数据库名列表
database=(db1 db2 db3 db4)
#数据库用户密码
mysql_user="******"
mysql_pass="******"
#数据库容器名
mysql_name="mysql8"
#开始备份数据库
for i in ${database[*]};
do
docker exec ${mysql_name} mysqldump -u$mysql_user -p$mysql_pass $i | gzip >"$data_dir/${i}_`date +%Y-%m-%d-%H`.sql.gz" 2>> ${logs_dir}/mysqllog.log
done
#判断备份是否异常
if [ "$?" == 0 ];then
echo “`date +%Y-%m-%d" "%H:%M:%S` 数据库备份成功!!” >> ${logs_dir}/mysqllog.log
else
#备份失败则进行以下操作
echo “`date +%Y-%m-%d" "%H:%M:%S` 数据库备份失败!!” >> ${logs_dir}/mysqllog.log
fi
#删除15天之前的备份
find $data_dir -mtime +15 -name '*.sql.gz' -exec rm -rf {} \;>> ${logs_dir}/mysqllog.log
定时触发设置