给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 任务文件。
相关推荐
姜鱼问生2 小时前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
wangqiaowq2 小时前
PostgresSQL server Docker 安装部署
运维·docker·容器
程序员阿明2 小时前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
我不会起名字3222 小时前
MySQL 深分页 LIMIT 1000000 卡死:3 种改写与 4 组实测对比
mysql·性能优化·索引·分页·limit
TTATTC3 小时前
让 16 个 AI 员工在飞书群自我协同:基于 OpenClaw 的多 Agent 敏捷 Squad 拓扑与一人公司实操
docker·开源
TTATTC3 小时前
从分片续传到 SPI 插件化扩展:Free-FS 企业级文件系统核心架构与万能预览技术拆解
docker·开源
JavaPub-rodert4 小时前
Docker 容器为什么 stop 半天停不下来?讲透 PID 1、SIGTERM、SIGKILL、僵尸进程与 tini
运维·docker·容器
编程火箭车4 小时前
MySQL 拥抱 AI:向量、RAG、AutoML 全进了数据库
数据库·mysql·ai编程·向量数据库·rag·automl·mysql9
o_oer4 小时前
mysql type
mysql
花卷持续成长4 小时前
慢SQL的整体优化思路
后端·mysql