打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Docker定时备份MySQL数据到七牛云

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

需要用到的:

  • 一台云服务器(Linux CentOS系统)。这里使用阿里云服务器。当然你也可以使用腾讯云服务器。本质都一样。只要你选CentOS 系统就可以。

  • 一个域名并通过了ICP备案。(七牛云存储开通需要用到自己的域名,没有域名,将无法使用七牛云存储。而且部署项目也需要有一个域名,总不能你系统靠ip地址来访问吧,搜索引擎可是不收录的哦) 阿里云域名注册 或 腾讯云域名注册

  • 服务器安装宝塔面板。(为了方便执行数据备份必须安装)
    参考教程:阿里云服务器安装宝塔面板完整教程

  • 开通七牛云存储空间+宝塔面板安装七牛云插件。参考教程:宝塔面板备份站点数据到七牛云完整教程

  • 服务器安装Docker并部署SpringBoot项目。参考笔记:Docker部署SpringBoot项目

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

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

#!/bin/bash
echo '##########################################'echo '###### The database is automatically backed up at 01:00 am every day ######'echo '##########################################'# Setting environment variablesDATE=$(date +%Y_%m_%d_%H_%M_%S)# $(date +%Y%m%d)# 数据库用户名
USERNAME=root
# 密码
PASSWORD=123456# 要备份的数据库
DB=favorites# Docker容器IDDOCKERID=********#DB1=xxxx# ubuntu 系统非 root 用户,要将备份产生的文件放到 xxx 用户所在的目录下,否则必须使用 sudo 输入管理员密码执行此脚本。# Linux服务器上备份文件目录。DIR=/root/data_backup   
echo 'Get system date: ' $DATEif [ ! -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=5date=$(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数据备份目录。

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

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

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

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

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

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

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
docker 使用mysqldump命令备份导出项目中的mysql数据
Centos7使用docker部署最新6.2版Zabbix Server端
用docker搭建一个图床服务
mysql服务器之初始化数据目录(data)——手动创建data目录报错处理
Docker --- 安装MySQL
Linux系统环境基于Docker搭建Mysql数据库服务实战
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服