给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 小时前
MySQL 单表操作通关指南:建库 / 建表 / 插入 / 增删改查
运维·服务器·数据库·学习·程序人生·mysql·oracle
编程小Y3 小时前
MySQL 与 MCP 集成全解析(核心原理 + 实战步骤 + 应用场景)
数据库·mysql·adb
lvbinemail4 小时前
Grafana模板自动复制图表
数据库·mysql·zabbix·grafana·监控
学Linux的语莫4 小时前
docker,docker-compose二进制包安装
docker
weixin_448119944 小时前
Datawhale Hello-Agents入门篇202512第1次作业
数据库·sql·mysql
皮皮林5514 小时前
有了开源的 MySQL,为什么还要选择 PostgreSQL?
mysql
廋到被风吹走5 小时前
【数据库】【MySQL】分库分表策略 分类、优势与短板
数据库·mysql·分类
_oP_i5 小时前
Docker 整体架构
docker·容器·架构
杨浦老苏5 小时前
可视化服务构建器Dock-Dploy
docker·工具·群晖
落世繁华6 小时前
DIFY合同生成全流程开发实践(三、后端接口以及优化方向)
docker·一键部署·dify·合同生成·文字转word