docker mysql数据备份 脚本备份容器内mysql . mysql8.0自动备份数据库脚本

1.备份mysql数据库数据,并删除老数据,留取最新十个文件:

#!/bin/bash

#set -x
# MySQL连接信息
DBHOST="127.0.0.1"
USERNAME="root"
PORT="3306"
DATABASES=("test" "test2")

# 容器内备份目录 删掉了没用到
CONTAINER_BACKUP_DIR="/backup"

# 容器外备份目录
HOST_BACKUP_DIR="/data/backup/mysql/sql_file"

# 创建容器外备份目录(如果不存在)
mkdir -p $HOST_BACKUP_DIR

for DB in "${DATABASES[@]}"
do
    # 备份文件名格式:db_backup_数据库名_日期时间.sql
    BACKUP_FILE="db_backup_${DB}_$(date +'%Y%m%d_%H%M%S').sql"
    
    # 在容器内执行备份命令
    docker exec -i mysql bash -c "mysqldump --host=$DBHOST --user=$USERNAME --password='在这里输入密码' --port=$PORT --opt --triggers --routines --single-transaction --set-gtid-purged=OFF $DB > $BACKUP_FILE"
    
	sleep 30
	
    # 复制备份文件到容器外备份目录
    docker cp mysql:$BACKUP_FILE $HOST_BACKUP_DIR
    
    # 删除容器内的备份文件
    docker exec mysql rm $BACKUP_FILE
    
    # 在容器外备份目录中删除旧备份,保留最新的10个备份文件
    cd $HOST_BACKUP_DIR
    ls -t | grep -E "db_backup_${DB}_" | tail -n +11 | xargs rm -f
	echo "Backup completed and old
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值