docker-compose-mysql-定时备份数据库到其他服务器脚本
文章目录
- 前言
- 创建脚本
- 设置执行权限
- 脚本内容
- 定时备份
- 新增
- 验证
- 定时任务检查
- 查看状态
- 启动
- 开机启动
前言
原来使用了 阿里云的快照,但是快照是整盘处理的,成本比较高,刚好有一台mongodb也是快照备份,那么只需要将当台的服务器脚本定时备份到 mongodb服务器即可
创建脚本
touch back.sh
设置执行权限
chmod 755 back.sh
脚本内容
#!/bin/bash# 要备份的库
DATABASES="库"
# 要备份的表,多个表通过空格隔开
TABLES="表1 表2"
# 容器ID
DOCKER_ID="容器ID"
# 用户名
USER_NAME="用户名"
# 密码
PASSWORD="密码"
# 设置备份文件名
BACKUP_FILE="./backup_$(date +'%Y%m%d').sql"
# 在MySQL容器中使用 mysqldump 命令备份数据库docker exec $DOCKER_ID mysqldump -u $USER_NAME -p$PASSWORD $DATABASES $TABLES > $BACKUP_FILE
# 可选:压缩备份文件
gzip -f $BACKUP_FILE
# 同步备份的日志到目标服务器
rsync -avz -e ssh ./$BACKUP_FILE.gz root@prod-mongo:/data/mysql_backup
定时备份
新增
crontab -e
脚本内容
0 2 * * * /你的目录/back.sh >> /你的目录/backup.log 2>&1
验证
crontab -l
定时任务检查
查看状态
sudo systemctl status crond
启动
sudo systemctl start crond
开机启动
sudo systemctl enable crond