docker-compose-mysql-定时备份数据库到其他服务器脚本

文章目录

前言

原来使用了 阿里云的快照,但是快照是整盘处理的,成本比较高,刚好有一台mongodb也是快照备份,那么只需要将当台的服务器脚本定时备份到 mongodb服务器即可

创建脚本

shell 复制代码
touch back.sh

设置执行权限

shell 复制代码
chmod 755 back.sh

脚本内容

shell 复制代码
#!/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

定时备份

新增

shell 复制代码
crontab -e

脚本内容

shell 复制代码
0 2 * * * /你的目录/back.sh >> /你的目录/backup.log 2>&1

验证

shell 复制代码
crontab -l

定时任务检查

查看状态

shell 复制代码
sudo systemctl status crond

启动

shell 复制代码
sudo systemctl start crond

开机启动

shell 复制代码
sudo systemctl enable crond