给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"

2、编写定时任务

复制代码
#编辑定时任务,如果第一次执行。可能需要选择下编辑器,nano和vi模式,这里我常用的是vi
crontab -e

#进入编辑模式,加入在末尾追加定时任务,每天凌晨2点执行,mysql_backup.sh就是上面脚本的文件名字
0 2 * * * /path/to/mysql_backup.sh

# 保存并关闭文件,就可以正常执行了
# 查看定时任务状态命令
systemctl status cron
# [选择性执行] 如果定时任务状态不是启动的,可以执行启动定时任务命令
sudo systemctl start cron

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

注意事项

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

复制代码
# 1、输入以下命令以更改默认编辑器设置:
export VISUAL=vim
export EDITOR=vim

# 2、运行以下命令来编辑 Cron 任务文件:
crontab -e

# 3、现在,应该会看到 vi 编辑器打开了 Cron 任务文件。
相关推荐
问简6 小时前
docker 镜像相关
运维·docker·容器
Benszen7 小时前
Docker容器化技术实战指南
运维·docker·容器
被摘下的星星8 小时前
MySQL count()函数的用法
数据库·mysql
Hommy888 小时前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
素玥8 小时前
实训5 python连接mysql数据库
数据库·python·mysql
斯普信云原生组9 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪9 小时前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人10 小时前
docker compose部署kafka集群搭建
docker·容器·kafka
Chasing__Dreams10 小时前
Mysql--基础知识点--95--为什么避免使用长事务
数据库·mysql
数据知道12 小时前
claw-code 源码分析:OmX `$team` / `$ralph`——把 AI 辅助开发从偶发灵感变成可重复流水线
数据库·人工智能·mysql·ai·claude code·claw code