当前位置: 首页 > article >正文

【数据库备份】docker中数据库备份脚本——MySql备份脚本

docker中数据库备份脚本——MySql备份脚本

#!/bin/bash

# MySQL数据库信息
DB_USER="root"
DB_PASSWORD="你的密码"

# 备份保存主目录
BACKUP_ROOT="/data/data_backup/mysql"

# 最多保留的备份日期文件夹数
MAX_DATE_FOLDERS=15

# 数组包含要备份的数据库名称
DB_NAMES=("数据库名称1" "数据库名称2" "数据库名称3" "数据库名称4")

# 获取当前日期
CURRENT_DATE=$(date +%Y%m%d)

# 循环备份每个数据库
for DB_NAME in "${DB_NAMES[@]}"; do
    # 创建日期文件夹(如果不存在)
    BACKUP_DIR="$BACKUP_ROOT/$CURRENT_DATE"
    mkdir -p "$BACKUP_DIR"

    # 备份文件名
    BACKUP_FILE="$BACKUP_DIR/backup_${DB_NAME}_${CURRENT_DATE}.sql"

    # MySQL备份命令
    docker exec -i mysql mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

    # 删除过期的日期文件夹
    CURRENT_DATE_FOLDERS=$(ls -1 -d $BACKUP_ROOT/*/ 2>/dev/null)
    NUM_DATE_FOLDERS=$(echo "$CURRENT_DATE_FOLDERS" | wc -l)
    if [ $NUM_DATE_FOLDERS -gt $MAX_DATE_FOLDERS ]; then
        OLDEST_DATE_FOLDER=$(echo "$CURRENT_DATE_FOLDERS" | head -n 1)
        rm -r "$OLDEST_DATE_FOLDER"
        echo "Deleted expired date folder: $OLDEST_DATE_FOLDER"
    fi

    echo "Backup completed for $DB_NAME: $BACKUP_FILE"
done

定时任务
命令:crontab -e

0 0 * * * /data/data_backup/mysql/backup.sh

每天0点开始备份


http://www.kler.cn/a/595609.html

相关文章:

  • C++ 异常 【无敌详细版】
  • 汇川EASY系列之以太网通讯(MODBUS_TCP做主站)
  • 爱普生晶振FC2012AA汽车ADAS主控制系统的理想选择
  • 对接马来西亚、印度、韩国、越南等全球金融数据示例
  • visual studion 2022如何使用PlaySound()
  • 扩展卡尔曼滤波
  • Java 大视界 -- Java 大数据在智能医疗远程会诊与专家协作中的技术支持(146)
  • 阅读《Vue.js设计与实现》 -- 03
  • hashMap部分相关知识
  • 未来办公与生活的新范式——智慧园区
  • 二分查找-在排序数组中查找元素的第一个和最后一个位置
  • 【鸿蒙开发】Hi3861学习笔记- 串口
  • Excel online开始支持Copilot高级数据分析:Python提供强大的数据见解
  • 【从零开始学习计算机科学与技术】系统工程概论(二)系统工程方法论
  • rust Send Sync 以及对象安全和对象不安全
  • 【Pandas】pandas Series plot.bar
  • 蓝桥每日打卡--打家劫舍4
  • 大数据学习(80)-数仓分层
  • [GHCTF 2025]Popppppp[pop链构造] [php原生类的利用] [双md5加密绕过]
  • 香港站群服务器租用应该怎么选?