• 使用 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%"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

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

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

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

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

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

  • 相关阅读:
    七、模型评估指标
    手把手教你搭建ELK-新手必看-第六章:搭建filebeat
    Netty之DefaultAttributeMap与AttributeKey的机制和原理
    Jenkins--基础--6.1--Pipeline--介绍
    云原生Kubernetes: K8S 1.29版本 部署GitLab
    存储资源盘活系统,“盘活”物联网架构难题(上)
    当数据量越来越大,优化时是分库分表还是使用newSQL
    MySQL MHA
    利用wasm实现读写本地项目的在线编辑器
    站群服务器的特性和好处是什么
  • 原文地址:https://blog.csdn.net/weixin_38912950/article/details/132613817