关注本站,零基础新手也能轻松搭建个人网站!
  1. 首页
  2. Java实战教程

Docker定时备份MySQL数据库到七牛云教程

阿里云服务器优惠

重大福利提醒:【双11活动】整个11月份阿里云服务器降价了,1核2G1年58元 3年180元。这个价格买到就是赚到。180元就可以让你建站3年,全网找不到这么低的价格了。
活动地址阿里云双11降价活动(1核2G1M3年180元) 只有阿里云新用户才能参与活动。
必读事项购买阿里云服务器必读事项(省钱有绝招)
如果你不是阿里云新用户,可以找家人,亲戚的账号重新注册为阿里云新用户。一次性买满3年,我和我朋友们都是这么干的,主要是省钱。大家看了我的教程的应该都知道,多台云服务器之间的网站备份,数据迁移很容易,不用担心数据备份和迁移问题。
问题咨询:大家遇到各种问题可以微信咨询,微信号:xzjmyk 先加微信,然后拉你入交流群。

概述

如果还有不了解宝塔面板怎么使用的小伙伴,可以看下我总结的系列教程,保证从新手变老鸟:

【建站流程科普】

【宝塔面板精选教程汇总】

【宝塔面板常见问题汇总】

前言:我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=root
# 密码
PASSWORD=123456
# 要备份的数据库
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数据备份目录。

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

原创文章,作者:admin,如若转载,请注明出处:http://tencent.yundashi168.com/865.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code

2020年阿里云618大促活动(有香港主机)

1核/2G/1M---91元1年,三年275元;
2核/4G/1M---320元1年,三年960元;
2核/8G/1M---416元1年,三年1093元;
4核/8G/1M---465元1年,三年1396元;
1核2G(香港,不用备案)---249元1年,三年888元;点击直达
还有还有4核8G6M、8核16G10M配置,价格很低很低!

注意:这个价,只有新用户才能看到;老用户借用家人身份重新注册,这个价格重新注册也不亏!

我知道了