• 给docker容器中的mysql做定时数据备份


    给docker容器中的mysql做定时数据备份

    1、写脚本

    #!/bin/bash
    
    # MySQL数据库配置
    DB_HOST="127.0.0.1"
    DB_PORT="3306"
    DB_USER="root"
    DB_PASSWORD="123456"
    DB_NAME_AUTHORITY="stu_authority"
    DB_NAME_WEB="stu_web"
    
    # 备份目录和文件名,需要修改备份目录
    BACKUP_DIR_WEB="/var/lib/mysql/mysql_backup/web"
    BACKUP_DIR_AUTH="/var/lib/mysql/mysql_backup/authority"
    BACKUP_FILENAME_WEB="web_backup_$(date +"%Y%m%d%H%M%S").sql.gz"
    BACKUP_FILENAME_AUTHORITY="authority_backup_$(date +"%Y%m%d%H%M%S").sql.gz"
    # 创建备份目录(如果目录不存在)
    mkdir -p $BACKUP_DIR_WEB
    mkdir -p $BACKUP_DIR_AUTH
    
    # 执行备份命令
    docker exec <容器id> mysqldump -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASSWORD $DB_NAME_AUTHORITY | gzip > $BACKUP_DIR_AUTH/$BACKUP_FILENAME_AUTHORITY
    
    docker exec <容器id> mysqldump -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASSWORD $DB_NAME_WEB | gzip > $BACKUP_DIR_WEB/$BACKUP_FILENAME_WEB
    # 输出备份完成信息
    echo "MySQL backup completed: $BACKUP_DIR_WEB/$BACKUP_FILENAME_WEB"
    echo "MySQL backup completed: $BACKUP_DIR_AUTH/$BACKUP_FILENAME_AUTHORITY"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    2、编写定时任务

    #编辑定时任务,如果第一次执行。可能需要选择下编辑器,nano和vi模式,这里我常用的是vi
    crontab -e
    
    #进入编辑模式,加入在末尾追加定时任务,每天凌晨2点执行,mysql_backup.sh就是上面脚本的文件名字
    0 2 * * * /path/to/mysql_backup.sh
    
    # 保存并关闭文件,就可以正常执行了
    # 查看定时任务状态命令
    systemctl status cron
    # [选择性执行] 如果定时任务状态不是启动的,可以执行启动定时任务命令
    sudo systemctl start cron
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    至此,定时备份数据的任务就算完成了。

    注意事项
    如果第一次编辑定时任务(crontab -e),然后编辑模式选错了,选成nano,但是只会用vi的话,以下是帮你解决的方法:

    # 1、输入以下命令以更改默认编辑器设置:
    export VISUAL=vim
    export EDITOR=vim
    
    # 2、运行以下命令来编辑 Cron 任务文件:
    crontab -e
    
    # 3、现在,应该会看到 vi 编辑器打开了 Cron 任务文件。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    kotlin基础语法
    达梦数据库如何查看和修改系统参数
    好好学习第一天:手写数字识别
    论文解读(SUBG-CON)《Sub-graph Contrast for Scalable Self-Supervised Graph Representation Learning》
    4、FFmpeg命令行操作6
    “第六十三天”
    Postgres 史上最垃圾的高可用软件之 - CLup
    大数据在电力行业的应用案例100讲(十七)-基于微服务架构的营配贯通设计
    Spring学习③__Bean管理
    每日一题:Spring MVC 的执行流程是什么❓
  • 原文地址:https://blog.csdn.net/qq_43473129/article/details/132968736