• huaxiaoji
    定时远程备份
    ID timed_backup版本 1.1.2插件制作者 huaxiaoji售价 5 积分987 行 / 61.4 KB后台页
    按设定时刻自动把数据库、上传附件、程序文件等打包成压缩包,通过邮件发送到指定邮箱,防止数据丢失;支持全量/增量、大备份自动分卷、环境自检与测试邮件。
    收费插件安装说明购买后点击“授权码”获取一次性授权码;在后台 > 插件广场点击在线安装或更新,并填写该授权码。已购买用户更新免费:每次在线安装或更新前,重新点击“授权码”获取新的一次性授权码即可,无需再次购买;也可直接下载新版后用后台“插件上传”更新。尊重并感谢他人劳动,请勿传播代码。
    app/plugins/timed_backup/plugin.php
    开发日志已有 3 条

    个人独立维护项目。

    • huaxiaoji
      huaxiaoji
      版本 1.1.2 e45c65d8b760 更新:新增 **运行日志** 区块release
    • huaxiaoji
      huaxiaoji
      版本 1.1.1 fa6998493eac 更新:修复备份记录异常的问题 增加了备份格式的设置项。
    • huaxiaoji
      huaxiaoji
      版本 1.1.0 fee095a42a97 更新:v1.1.0(2026-09-27) 数据库导出改为流式分片(每片 5 万行),大表不再占用巨额内存、不再静默截断 备份清单记录列类型,恢复工具可重建表结构;新增独立恢复工具 邮件分卷阈值按编码膨胀折算,单卷不再超邮箱限制 修复 STARTTLS 加密后认证判断错误(587 端口常见场景) 后台 "立即备份 / 测试邮件" 先保存表单再执行,改动即时生效 修复文件数统计重复、PostgreSQL
    主楼
  • huaxiaoji

    版本 1.1.0 更新:
    v1.1.0(2026-09-27)
    数据库导出改为流式分片(每片 5 万行),大表不再占用巨额内存、不再静默截断
    备份清单记录列类型,恢复工具可重建表结构;新增独立恢复工具
    邮件分卷阈值按编码膨胀折算,单卷不再超邮箱限制
    修复 STARTTLS 加密后认证判断错误(587 端口常见场景)
    后台 "立即备份 / 测试邮件" 先保存表单再执行,改动即时生效
    修复文件数统计重复、PostgreSQL 漏备份、附件数量上限未生效等问题
    新增压缩包密码(传统加密,兼容主流解压软件)
    并发防护:自动回收异常中断的备份记录,防双跑与锁死
    卸载时清理工作目录,不残留敏感数据
    界面升级:折叠分区、系统主题变量、中文文案面向普通用户
    v1.0.0(2026-09-26)
    首个正式版本:定时 / 手动备份、全量 / 增量、邮件投递、环境自检、备份记录

    #1
  • 质量报告

    插件质量报告

    插件:timed_backup

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_timed_backup_runlogs

    字段类型可空默认值约束
    idid否-主键、自增
    backup_iduint否0-
    tsuint否--
    levelkey否'info'-
    messagestring否''-
    duration_msuint否0-

    plugin_timed_backup_logs

    字段类型可空默认值约束
    idid否-主键、自增
    trigger_namekey否'cron'-
    statuskey否'running'-
    scopestring否''-
    modekey否'full'-
    file_countuint否0-
    zip_countuint否0-
    total_sizeuint否0-
    errortext否--
    started_atuint否--
    finished_atuint否0-
    #2
  • huaxiaoji

    定时远程备份 v1.1.0 —— 使用与安装说明

    再也不用担心网站数据丢失。

    设定好时刻,插件会自动把数据库、上传附件、程序文件打包成压缩包,通过邮件发送到你的邮箱 —— 灾难发生时,你离完整恢复只差一封邮件。


    一、功能亮点

    能力说明
    ⏰ 定时自动备份每天 / 每周 / 每月固定时刻自动执行,无需手动干预;计划点持久化保存,服务器重启也不丢
    📦 四种备份内容数据库(全部数据)、站点与插件配置、程序文件、上传附件,按需勾选
    ⚡ 增量模式附件按 "上次成功备份之后的变化" 增量打包,节省流量与存储;数据库始终全量,保证完整性
    ✉️ 邮件投递压缩包直接发到指定邮箱(支持多个收件邮箱),可随时在任意设备下载保存
    📎 自动分卷备份超过邮箱单封上限时自动拆成多个压缩包分多封发送,不再受附件大小限制
    🔐 可选加密可为压缩包设置密码,邮件泄露也能保护数据
    🩺 环境自检后台一键检查打包支持、加密支持、目录权限、任务注册、邮件配置五项是否就绪
    📨 测试邮件配置完成后先发一封测试邮件确认,避免 "定时任务失败才发现"
    📜 完整日志每次备份的成功 / 失败、卷数、大小、错误原因全部记录并可翻页查看
    🔧 一键恢复附带独立恢复工具,从备份压缩包重建数据库并还原文件

    二、环境要求

    • PHP 8.1 及以上(建议 8.2+),需要 pdo_sqlite / pdo_mysql / pdo_pgsql 之一、zip 扩展、mbstring 扩展
    • 服务器需启用计划任务(cron)调度,插件每 5 分钟唤醒检查计划点
    • 发件邮箱需开启 SMTP 服务并获取授权码(见下文常见邮箱配置)

    三、安装步骤

    1. 将本包中的 plugin.php 上传到论坛插件目录:app/plugins/timed_backup/plugin.php
    1. 进入后台 管理 → 插件,点击 "同步插件" 让系统发现本插件
    1. 找到 "定时远程备份",点击 启用(安装会自动创建日志表并初始化计划)
    1. 进入插件设置页,先看 环境自检 五项是否全绿;缺失项按提示处理
    1. 填写邮件投递配置 → 点击 发送测试邮件,确认能收到
    1. 点击 保存设置,备份计划即生效(下次自动备份时间会在页面显示)

    提示:未配置 SMTP 前插件不会自动执行备份,但随时可以手动 "立即备份并发送"。

    四、配置指南

    1. 备份计划

    • 备份频率:每天 / 每周(选星期几)/ 每月(选 1–28 日)
    • 执行时刻:站点时区下的 HH:MM(如 03:30,建议选访客少的时段)
    • 备份模式:全量 / 增量。增量模式下数据库仍始终全量,只有附件按变化增量

    2. 备份内容

    • 数据库:站点全部数据表,逐表导出为 JSON 分片(大表自动分片,不再受单表行数限制)
    • 站点与插件配置:未勾选数据库时单独备份配置表
    • 程序文件:index.php 与 app/ 目录(自动排除数据与上传目录),可设总量上限
    • 上传附件:app/upload,可设文件数量上限(防止海量小文件拖垮备份)

    3. 邮件投递(SMTP)

    各邮箱服务商的参考配置(授权码可在邮箱设置中生成):

    邮箱服务器端口加密方式单封附件建议
    QQ 邮箱smtp.qq.com465SSL45MB 以内
    163 邮箱smtp.163.com465SSL45MB 以内
    Gmailsmtp.gmail.com587STARTTLS20MB 以内
    Outlooksmtp.office365.com587STARTTLS20MB 以内
    • 发件账号:通常就是发件邮箱地址;发件密码 / 授权码:填邮箱服务商生成的 "授权码",不是邮箱登录密码
    • 单封邮件上限:按目标邮箱限制的约七成填写(编码膨胀约 33%,45MB 附件实际投递约 60MB)
    • 备份超过单封上限时自动分卷为多封邮件,邮件主题带卷号(如「1/3」「2/3」)

    五、手动备份与测试

    • 立即备份并发送:无视是否到计划时刻,立刻执行一次完整备份并发邮件(大站点耗时较长,页面有保护提示)
    • 发送测试邮件:不打包任何数据,仅验证 SMTP 配置能否投递
    • 备份记录页会显示每次的触发方式(定时 / 手动)、内容、卷数、大小与结果

    六、恢复数据(重要)

    插件附带的独立恢复工具(命令行):restore_timed_backup.php

    \# 恢复数据库到新库
    
    php restore\_timed\_backup.php backup\_20260927\_033000\_part1.zip restore.db
    
    \# 同时把程序文件与附件解压到目录
    
    php restore\_timed\_backup.php backup\_xxx.zip restore.db ./restored
    • 支持多卷:把收到的所有卷压缩包放在一起,工具按清单自动合并分片
    • 数据库按备份清单重建表并导入数据(类型宽松映射:INTEGER / REAL / TEXT / BLOB)
    • 恢复前务必先备份现有数据库;恢复后建议重建索引并做一次完整备份
    • 若设置了压缩包密码,请用支持密码解压的工具先解压出内容再恢复

    恢复工具独立于论坛运行,不修改任何论坛代码;建议在服务器停止写入时恢复。此文件尚在测试,如有需要请联系本人获取。

    七、安全与注意事项

    • 备份包含用户邮箱、密码哈希等敏感数据,请确认收件邮箱安全,强烈建议设置压缩包密码
    • 邮件传输依赖加密(SSL / STARTTLS);不建议使用 "不加密" 模式
    • 增量模式是 "追加式":请保留全部历史邮件 / 压缩包,仅靠最近一次增量卷无法完整重建附件
    • 分卷邮件需全部保存后再解压;若某卷发送失败,日志会写明 "已成功发送 X/N 卷",重试会重发全部卷
    • 备份失败会自动走系统重试(默认 3 次后暂停 30 分钟),暂停到期自动恢复,不会永久卡死
    • 工作目录 data/timed_backup_work/ 在成功备份后自动清理;异常中断时残留文件会在下次自动回收

    八、常见问题

    Q:收不到备份邮件?

    先点 "发送测试邮件";若测试能收到而定时收不到,检查后台 "备份记录" 中的失败原因(错误信息会完整记录),常见为授权码错误、端口 / 加密不匹配、附件超限。

    Q:单卷压缩包提示过大无法发送?

    备份中存在超大单个文件(如很大的数据表导出)。请调低 "单封邮件上限" 以外的因素:拆分备份内容、提高邮箱附件上限,或把超大的表拆分导出。

    Q:增量模式没有备份到所有附件?

    增量只打包上次成功备份之后新增或修改的文件,删除不反向生效。要完整快照请切换 "全量" 模式。

    Q:压缩包提示需要密码?

    在设置页 "压缩包密码" 处配置过密码。留空保存不会清除已有密码;如需取消加密,请重新填写并联系管理员确认解压密码。

    Q:服务器没有开启计划任务怎么办?

    本插件依赖系统 cron 每 5 分钟唤醒一次。请参照主程序文档启用 cron 调度,否则只能手动备份。

    九、更新日志

    v1.1.0(2026-09-27)

    • 数据库导出改为流式分片(每片 5 万行),大表不再占用巨额内存、不再静默截断
    • 备份清单记录列类型,恢复工具可重建表结构;新增独立恢复工具
    • 邮件分卷阈值按编码膨胀折算,单卷不再超邮箱限制
    • 修复 STARTTLS 加密后认证判断错误(587 端口常见场景)
    • 后台 "立即备份 / 测试邮件" 先保存表单再执行,改动即时生效
    • 修复文件数统计重复、PostgreSQL 漏备份、附件数量上限未生效等问题
    • 新增压缩包密码(传统加密,兼容主流解压软件)
    • 并发防护:自动回收异常中断的备份记录,防双跑与锁死
    • 卸载时清理工作目录,不残留敏感数据
    • 界面升级:折叠分区、系统主题变量、中文文案面向普通用户

    v1.0.0(2026-09-26)

    • 首个正式版本:定时 / 手动备份、全量 / 增量、邮件投递、环境自检、备份记录

    *插件作者:滑小稽 本插件仅作数据保护用途,请合法合规使用。

    最后由 huaxiaoji 编辑于 2026-09-27 16:31
    #3
  • bbs1org

    实用的工具

    #4
  • yyds

    首次备份基本多久? 初始站 十分钟了还在进行中。
    09-27 16:55
    手动
    —
    进行中

    #5
  • huaxiaoji

    我这边自己测试不超过30秒,你可以看看邮箱有没有收到邮件,有时候备份状态不太可信。

    #7
  • yyds

    没收到,。测试邮件正常。

    #8
  • huaxiaoji

    这块我一会更新一版可以查运行日志的。。定位下什么问题

    最后由 huaxiaoji 编辑于 2026-09-27 17:15
    #9
  • huaxiaoji

    再试试,不行的话带个图我看看

    #11
  • huaxiaoji

    版本 1.1.1 更新:
    修复备份记录异常的问题
    增加了备份格式的设置项。

    #6
  • huaxiaoji

    版本 1.1.2 更新:
    新增 运行日志 区块

    #10
  • yyds

    OK了。

    #12

发表回复

登录后回复