【插件】一键备份同步至邮箱 (kkxy_backup)

功能简介

将网站文件与数据库一键打包备份,通过邮件发送到指定邮箱。采用可视化步骤组件实时展示备份全流程,支持历史记录管理、失败重传、数据库导出等。

Q: 为什么开发要发送到邮箱?

A: 因为我的天翼网盘和天翼邮箱是共享存储的,10T空间

核心功能

可视化备份流程

备份执行采用 Bootstrap 5 步骤组件动态展示,状态自动切换。根据是否启用数据库备份,自动适配为三步或四步流程:

  • 启用数据库备份(四步):自检 → 数据库导出 → 压缩 → 发送

  • 未启用数据库备份(三步):自检 → 压缩 → 发送

各步骤说明:

  1. 自检 — 备份目录可写性、ZipArchive 扩展、SMTP 配置、磁盘空间、数据库连接等全项检查

  2. 数据库导出 — 导出数据库为 SQL 文件(仅在启用数据库备份时显示)

  3. 压缩 — 实时进度条显示文件扫描与压缩进度(文件数 / 百分比 / 大小)

  4. 发送 — 邮件发送状态与结果展示

备份完成后步骤面板和运行日志保持显示,不会自动清空。重新进入设置页面时界面恢复初始状态,不显示上次的步骤和日志。

整站文件打包

  • 递归扫描网站根目录,打包为 zip 压缩包

  • 支持自定义排除目录(默认排除 backuptmplog 等)

  • 支持自定义排除文件扩展名

  • 自动排除备份目录自身,避免递归打包

数据库备份

  • 可选开启数据库导出功能

  • 导出所有匹配表前缀的数据表(结构 + 数据)为 SQL 文件

  • SQL 文件打包进 zip 压缩包,同时作为独立附件通过邮件发送

  • 备份完成后自动清理临时 SQL 文件

邮箱发送

  • 通过站点 SMTP 配置(PHPMailer)将备份 zip 和 SQL 文件作为附件发送

  • 支持发送后自动删除服务器上的临时文件

  • 运行日志中收件邮箱仅在最终完成时显示一次

失败重传

  • 邮件发送失败时自动显示「重传失败目标」按钮

  • 复用已有 zip 文件重新发送,无需重新打包

历史记录

  • 每次备份自动记录到数据库(文件名、大小、状态、目标结果、运行日志)

  • 支持查看详细日志和删除记录

下载地址

最新回复
  • Lecms 内测用户 Lv2
    数据库可以备份多大的文件,上G的测试过没😁
    17天前
    扣扣小妖 Lv3 作者 回复@Lecms
    没测过 ,哈哈,我是自用,没这么大,而且也需要看邮箱发邮件能附加多大附件(目前各大邮件服务商给的上限还是比较小气的,我了解到的好像是几十兆的样子吧)
    17天前
    扣扣小妖 Lv3 作者 回复@Lecms
    如果需要大的,那就要升级为其他备份方式了
    17天前
  • Laity 内测用户站长3级用户 Lv3
    网盘都支持吗
    16天前
    扣扣小妖 Lv3 作者 回复@Laity
    不支持网盘哦,只是邮箱
    16天前
  • AI Lv1

    感谢分享!这个插件解决了手动备份的痛点,特别是失败重传和历史记录功能很实用。

    关于文件大小限制,确实受限于 SMTP 附件上限(通常 20-50MB)。对于大型站点,建议考虑以下优化方向:

    1. 分卷压缩:支持生成多个 .zip.part 文件,降低单次传输压力。
    2. 云存储直传:后续可探索集成阿里云 OSS/S3 等对象存储,通过 API 直接上传,绕过邮件附件限制。
    3. 增量备份:仅备份变更文件,大幅减小体积。

    另外,提醒作者注意 ZipArchive 在超大文件时的内存占用问题,建议在循环压缩时定期调用 gc_collect_cycles() 释放内存,防止 PHP 进程 OOM 崩溃。期待后续版本更新!【以上由 AI 自动回复,仅供参考】

    11天前
  • 厉害,QQ邮箱,网易邮箱都可以吗?
    8天前

请先登录后再回复 登录