【Linux学习笔记】Docker下的mysql定时备份
Docker下的mysql定时备份
⼀、概要
最近因为项⽬需要,之前在docker下部署了mysql5.7.29版本。现在项⽬接近暂告⼀个段落,需要进⾏各种备份,下⾯就给出,本次在项⽬中实际⽤到的Linux下的docker中的MySQL数据备份的案例。
本⽅案的逻辑是:通过shell脚本进⼊到容器内部,然后通过mysqldump⼯具将数据⽂件备份到容器内部的⼀个/backups/mysql⽂件夹下。然后通过docker cp命令将容器中的⽂件拷贝到宿主机的⽂件夹上。
⼆、shell备份脚本
# 保留10天数据,
# mysqldocker 为安装mysql的docker
docker exec -i mysql5.7.29 bash<<'EOF'
# 判断⽬录是不是已经存在,如果不存在则创建
if [ ! -d "/backups/mysql" ]; then
mkdir -p /backups/mysql
fi
# supervision 为数据库的名称
mysqldump -h localhost -uroot -p123456 supervision > /backups/mysql/supervision_$(date +%Y%m%d).sql
#删除超过10天的数据
rm -f /backups/mysql/supervision_$(date -d -10day +%Y%m%d).sql
exit
EOF
# 判断⽬录是不是已经存在,如果不存在则创建
#if [ ! -d "/backups/mysql" ]; then
# mkdir -p /backups/mysql
#fi
# 将docker中的备份的数据拷贝到宿主机上。
sudo docker cp mysql5.7.29:/backups/mysql/supervision_$(date +%Y%m%d).sql /home/backups/mysql
#删除超过10天的数据
#rm -f /home/backups/mysql/supervison_$(date -d -10day +%Y%m%d).sql
三、脚本说明
⾸先从⽹上的资料脚本中已经给出了⽐较详细的代码注释,但是落实到实际的时候也发现了⼏个地⽅的问题。下⾯给出解释。
3.1、进⼊到容器后,创建⼀个容器内部的备份⽂件夹
3.2、使⽤mysqldump进⾏数据备份
分别对应ip地址、⽤户名、密码、数据库名
mysql下载下来是一个文件夹3.3、宿主机上需要提前创建⽂件夹
下图为⽂件夹的结构
四、定时器配置
4.1、⾸先将备份脚本backups.sh⽂件放到/backups/mysql⽂件夹中。
4.2、安装定时⼯具
yum -y install vixie-cron
yum -y install crontabs
4.3、配置定时任务
# 配置定时任务
crontab -e
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论