使用 qshell 定时备份数据库文件到七牛云并删除7天前的备份(windows版)

在大多数情况下,我们都需要对重要数据进行备份,并将其存放在一个安全的地方,以备不时之需。

对于 MySQL 数据库的备份,有几种常见的方式。首先是物理备份,即直接打包复制数据库或表文件。其次是全量逻辑备份,可以使用
mysqldump 工具进行备份,将数据库以 SQL 文件的形式导出。还有增量逻辑备份,可以使用 xtrabackup
工具进行备份,它可以只备份发生更改的数据。

备份数据后,我们需要选择一个合适的数据存储方式。可以将备份数据存储在本机上,也可以通过 FTP
上传到远程服务器,或者选择云存储服务,如阿里云OSS、七牛云存储等。选择适合自己需求和预算的存储方式。

为了方便,我们可以编写一个脚本来定时备份数据库,并自动将备份文件上传到指定的服务器或云存储。这样就可以实现自动化备份,避免手动操作和下载所带来的麻烦。同时,异地备份也能增加数据的安全性。

在这里,我们介绍一种在 Windows 服务器上备份 MySQL 并上传到七牛云存储的方式。

准备工作

7-zip.exe 压缩工具

sed.exe windows文件查找工具

qshell.exe 七牛云命令行工具
qshell 是七牛云官方利用七牛文档上公开的 API 实现的一个方便开发者测试和使用七牛 API 服务的命令行工具。

qshell 工具上一节已经说到如何去使用了,不懂的可以翻看一下,也可以去官网找一下详细的官方文档。

由于上一期写了基础,下面直接上执行代码

@echo off
REM mysql data backup script
REM
REM use mysqldump --help to get more details.

set "dbname=数据库名"
set "user=数据库用户"
set "password=数据库密码"
set "bakDir=C:\tools\backup\sql"
set "logFile=C:\tools\log\mysqlbak.log"
set "datetime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
set "keepDay=7"
set "zipPath=C:\Program Files\7-Zip\7z.exe"
set "qshellPath=C:\tools\qshell.exe"

echo "-------------------------------------------" >> "%logFile%"
echo %date% %time% >> "%logFile%"
echo "--------------------------" >> "%logFile%"
cd "%bakDir%"
set "bakFile=%dbname%.%datetime%.sql"
mysqldump -u %user% -p%password% %dbname% > "%bakFile%"
echo "数据库 [%dbname%] 备份完成" >> "%logFile%"
echo "%bakDir%\%bakFile%" >> "%logFile%"
echo "开始压缩备份文件" >> "%logFile%"
"%zipPath%" a -tgzip "%bakFile%.gz" "%bakFile%" > nul
echo "压缩完成" >> "%logFile%"
echo "开始上传备份文件至七牛云存储" >> "%logFile%"
"%qshellPath%" rput longmvip database/%bakFile%.gz "%bakFile%.gz" true >> "%logFile%" 2>&1
echo "删除%keepDay%天前的备份文件" >> "%logFile%"
forfiles /P "%bakDir%" /D -%keepDay% /C "cmd /c if @isdir==FALSE del /Q @path" >> "%logFile%"
echo " " >> "%logFile%"
echo " " >> "%logFile%"

这段脚本是一个用于备份 MySQL 数据库的脚本。它使用了 mysqldump 命令来导出数据库,并使用 7-Zip 进行压缩,最后将备份文件上传到七牛云存储。

以下是脚本的解释和用法:

dbname: 数据库名称。
user: 数据库用户。
password: 数据库密码。
bakDir: 备份文件存储目录。
logFile: 日志文件路径。
datetime: 当前日期和时间,用于生成备份文件名。
keepDay: 保留备份文件的天数。
zipPath: 7-Zip 可执行文件的路径。
qshellPath: qshell 可执行文件的路径,用于上传文件到七牛云存储。
脚本的执行流程如下:

设置日志文件的标题和时间戳。
切换到备份文件存储目录。
使用 mysqldump 命令导出数据库,并将输出重定向到备份文件。
记录数据库备份完成的信息到日志文件。
使用 7-Zip 进行备份文件的压缩。
记录压缩完成的信息到日志文件。
使用 qshell 将备份文件上传到七牛云存储。
记录上传完成的信息到日志文件。
删除保留天数之前的备份文件。
在日志文件中添加空行,以分隔不同的备份记录。
请注意,该脚本中的路径和参数需要根据您的实际情况进行修改。确保您已经安装了 mysqldump、7-Zip 和 qshell,并将它们的路径正确配置在脚本中。

如果您有任何问题或需要进一步的帮助,请随时告诉我。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

longm龙哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值