重大公告:2023年阿里云双11服务器限时大降价(1核2G1年仅需49元+2核4G1年100元) 速度点击查看!!!

Docker备份MySQL数据库到七牛云完整图文教程

2,777次阅读
没有评论

前言:我Linux服务器安装了docker,docker容器跑了springboot项目,用到了mysql数据库。所以必须准备程序,数据备份功能,万一哪天系统挂了,数据丢了,我可以随时恢复。因为没钱开通阿里云存储对象oss,腾讯云存储对象,就用七牛云免费的存储空间备份了。对于个人业余搞搞项目,还是可以的。对于商业项目还是用阿里云或腾讯云的存储对象吧。
宝塔面板也有插件支持阿里云,腾讯云存储空间。不会写代码的,也不用担心哦

需要用到的:

第一步:准备mysql数据库备份脚本

这个脚本是我根据网上资料修改,亲身实践成功得来。

#!/bin/bash
echo '##########################################'
echo '###### The database is automatically backed up at 01:00 am every day ######'
echo '##########################################'
# Setting environment variables
DATE=$(date +%Y_%m_%d_%H_%M_%S)
# $(date +%Y%m%d)
# 数据库用户名
USERNAME=*******
# 密码
PASSWORD=*******
# 要备份的数据库
DB=favorites

# Docker容器ID
DOCKERID=********

#DB1=xxxx
# ubuntu 系统非 root 用户,要将备份产生的文件放到 xxx 用户所在的目录下,否则必须使用 sudo 输入管理员密码执行此脚本。
# Linux服务器上备份文件目录。
DIR=/root/data_backup   
echo 'Get system date: ' $DATE

if [ ! -d "$DIR" ]; then
mkdir $DIR
fi
cd $DIR

echo 'backup started...' $(date "+%Y-%m-%d %H:%M:%S")

# 备份 docker 容器中的数据库
# docker exec -it 容器名称 mysqldump -u用户名 -p密码 要备份的数据库名称 | gzip > 要打包到的文件名称

# docker exec -it c7f1b671c57f mysqldump -u$USERNAME -p$PASSWORD $DB > /root/data_backup/database_name_$DATE.sql
# docker exec -it c7f1b671c57f mysqldump -uroot -proot favorites | gzip > /root/data_backup/database_name_2021_05_07.sql.gz

# 最关键的备份语句
docker exec $DOCKERID /usr/bin/mysqldump -u $USERNAME --password=$PASSWORD  $DB | gzip > /root/data_backup/database_name_$DATE.sql.gz

# 备份 直接安装在 linux 系统中的数据库
# /usr/bin/mysqldump -u$USERNAME -p$PASSWORD $DB2 | gzip > xxx_$DATE.sql.gz
# just backup the latest 7 days

# find ${DIR} -name "database_name_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1

# find ${DIR} -name "database_name_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1


#保留最近文件数5,删除其它多余的文件。
ReservedNum=5
date=$(date "+%Y%m%d-%H%M%S")

FileNum=$(ls -l $DIR|grep ^- |wc -l)

while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt $DIR| head -1)
    echo  $date "Delete File:"$OldFile
    rm -rf $DIR/$OldFile
    let "FileNum--"
done 

echo 'backup completed!' $(date "+%Y-%m-%d %H:%M:%S")

第二步:宝塔面板计划任务添加Shell脚本。

宝塔面板计划任务添加Shell脚本。
把上面的脚本添加进去。记住mysql数据备份目录。

Docker备份MySQL数据库到七牛云完整图文教程

第三步:宝塔面板添加新站点

宝塔面板添加新站点,选择站点根目录为mysql数据备份目录。比如:/root/data_backup

Docker备份MySQL数据库到七牛云完整图文教程

第四步:宝塔面板添加网站计划任务备份到七牛云

宝塔面板计划任务添加网站备份到七牛云。

Docker备份MySQL数据库到七牛云完整图文教程

这样就可以把服务器上的任何自定义目录都备份到七牛云存储空间了。

/root/data_backup/目录下,我们可以定期把docker mysql容器的数据导出到这个目录。然后再利用宝塔面板备份站点的功能,对这个自定义的目录进行完整备份到七牛云,又拍云,微软one drive,服务器FTP空间等

查看七牛云存储空间,备份成功!

Docker备份MySQL数据库到七牛云完整图文教程

关于宝塔面板备份七牛云,参考教程:宝塔面板备份站点数据到七牛云完整教程

原文持续更新:https://www.yundashi168.com/267.html

arison
版权声明:本站原创文章,由arison2021-05-10发表,共计4558字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)