用途与实际影响
这项功能怎样使用
为什么需要它
电脑本地、G 盘、Google Drive 和 H 盘各防一种故障。一次任务显示成功,不能替四处副本都作证;只有完整配置包和清单核对后才更新当前版本。
举个实际例子
我问:“昨晚备份好了吗,哪一份现在能带去新电脑?”状态分别列出本地包、G 盘、云端和 H 盘的最后成功日期,微信文件另看自己的副本。
最后我会得到什么
拿到每处副本最近的完整版本、日期、最近一次尝试和缺口。较新的本地或 G 盘备份不会让云端或 H 盘自动变成同一版本;恢复时按实际介质选择。
正常时
配置包和随附清单完整后,本机、G 盘及云端各自回读并标自己的日期。
发现问题时
云端网络中断时保留已完成的本地副本,说明云端稍后仍需重试。
入口不可用或证据不足时
云端目标身份不明或 H 盘未解锁时停对应复制,不自动改投另一账号或假报完成。
从哪里开始
在本机运行 Backup-Status.ps1 或在已接入的 AI 对话中问“昨晚每一层备份到哪一步”。
需要准备什么
- 想看的日期或备份代
- 本地、G、Drive、H 的实际可用性
从开始到拿到结果
- 1
看清哪份副本真的完整
状态入口分别展示电脑本地、G 盘、云端和 H 盘可验证的版本与时间,不把一层的成功借给另一层。
- 2
核对完整版本
本地先采集和验证整包,再复制并验 G;云端后来复制已完成的一代。
- 3
选真正能恢复的一份
交回每处副本的完整性和缺口;云端故障不抹掉已验本地副本,旧云记录也不算本轮成功。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
本地/G配置包9月24日已验,H冷备9月23日完成但较旧;配置Drive本次观察时运行中,云端未重读关键规则与设计选择
日期包及其附属清单作为一个成功代保留;current.json 是完整采集与验证的指针,latest.zip 只是兼容别名,不可凭修改时间挑包。
G:\80_Backup 作为本机可访问的日常在线热备(每日 21:05 + 登录后 20 分钟),该层不依赖公网。
配置包按完整代发布,不做 zip 内部差量;先发布日期文件与校验依据,再更新兼容别名和 current(当前状态)。文件集合或完整性不符时拒绝把候选冒充成功代。
云端复用必须针对同一完整成功代与登记目标逐项回读,不能只信本机旧 state/latest.sha256 或最近任务结果。
日期包、兼容别名、附属清单和 current(当前状态) 指针都需匹配本地成功代;一个 zip 的大小/MD5 相同不足以单独说明完整恢复集已发布。
本仓库的任务不写 H;PCConfig 的 AIRecoveryColdSync-Daily 每天机会式检查。H 人工解锁后,还需 Hot context 不超过 48 小时、DevConfig/微信各不超过 36 小时、G/H 介质身份正确、H 剩余空间高于 100 GiB 并取得写锁。
条件通过后PCConfig冷备跟随G当前有效保留集:先复制并核对新增变化,再清理H中已退出的旧副本。源根离线或读不完整不按空源删除,不自动重锁H;DevConfig本地/G日期包仍按既有7份轮转,新包验真后清旧日期包。
本模块用到的名词
- Tiered Storage(分层存储)
- 把同一恢复材料按本地包、G 盘在线热备、Google Drive 和 PCConfig 人工冷备分层,每层独立给出结果。
- Checksum Verification(校验和核验)
- 比对源与目标端的内容哈希,不依赖可能产生时钟漂移的文件修改时间。
- Cold Backup Window(冷备窗口)
- H 平时不可用;用户人工解锁后,PCConfig 日任务才有机会在新鲜度、介质、容量和写锁门通过时复制。任务不会自动解锁或重锁 H。
专业定义
先生成完整成功代,再分层发布;每层携带校验依据,失败不会把旧成功副本改成半成品。
解决什么
防止网络离线或海外云盘受阻导致本地热备无法完成,同时防止冷备介质暴露在日常自动化写入中导致损坏。
当前怎样实现
- G 短暂缺席沿用有界等待;独立候选、全部附属文件与成功回执验真前不替换当前指针或淘汰旧代,持续缺席保留上次成功并明确本次失败。
- Backup-DevConfig.ps1 通过 -Tier 参数支持 Local, Hot, Drive 组合,入口自动进行字符串切割与逗号兼容归一化。
- Initialize-BackupNetwork.ps1 自动从 Windows 系统代理读取当前已启用的代理配置,为后台无窗任务提供网络连通性。
- Resolve-ConfiguredRcloneRemote 从 state\rclone-remote-binding.json 读取用户选定的远端别名,文件损坏或不可读时直接 fail-closed(失败关闭)。
- tests/Assert-HDriveSafety.ps1 通过字符串与正则合同检查本仓库脚本没有 H 目标或已退役 Usb 参数;它不是 PowerShell AST 检查。
执行流程
- 1
计划任务或手动触发 Backup-DevConfig.ps1 -Tier Local,Hot。
- 2
独立 staging 经完整采集与 7z 测试后,生成日期包、SHA-256、成功回执、逐文件清单与包内 manifest(清单)。
- 3
把成功代复制到 G 并回验,最后原子发布 current.json;之后才按保留策略清理旧成功日期代。
- 4
22:00 Drive 任务锁定已完成的本地代,核对登记目标、完整状态与全部代文件。
- 5
先上传并验真日期包及其附属文件,再发布 latest 兼容别名与 current(当前状态);最后才写云端成功状态。
边界
- DevConfig 仓库的日常脚本与四个任务不直接写 H;H 冷备由 PCConfig 的独立日任务在人工打开的介质窗口机会式执行。
- Google Drive 同步必须严格读取绑定的合法远端别名,禁止静默切换至未授权云盘。
- 未通过大小与 MD5 双重校验的云端对象绝不标记为同步成功。
失败与恢复
- Google Drive 远端 binding 文件损坏或格式错误
- Resolve-ConfiguredRcloneRemote 立即失败关闭,拒绝回退至第一个可用远端,防止数据错传。
- 夜间定时上传时网络中断、系统代理或远端预检不可用
- 脚本写入本地日志并向 Task Scheduler 返回非零退出码,按任务策略重试;已完成的本地/G 热备不回滚。
- 上传后日期包或 latest.zip 的大小/MD5 不匹配
- 本轮 Drive 标记失败并保留本地包,下次继续核对或上传;不能写成云端已完成。
- AIRecoveryColdSync-Daily 运行时 H 没有解锁或不可见
- PCConfig 写出 status=skipped 与 H_unavailable;不写 G、不写云、不自动重锁 H,也不把本轮算成完成冷备。
真实入口
Backup-DevConfig.ps1分层备份主调度脚本,处理打包、本地保留、G 盘文件复制与 Drive 同步
Initialize-BackupNetwork.ps1代理环境继承与 rclone 远端 binding 安全解析
Backup-Status.ps1各级介质新鲜度与计划任务执行状态汇总控制台
tests/Assert-HDriveSafety.ps1本仓库 H 目标与退役 Usb 参数的字符串/正则合同检查
E:\PCConfig\tools\Invoke-CoreRecoveryMaintenance.ps1H 冷备的实际 owner:机会式日任务、新鲜度/介质/容量/写锁门与验真后的有效保留集源跟随
Backup.Common.ps1稳定采集、完整集合、原子回执、受管资源锁和成功代核验
如何验证
- 9 月 18 日来源回归与收尾证据包含 H 职责隔离和分层发布验证;网页本轮不重跑这些源码脚本。
- 2026-09-24 05:02 UTC 的零写入状态:本地/G 同为 devconfig-20260923-210942-0fc73b3a.zip,2,870,143,084 字节,生产者已验但状态入口未重哈希全部内容。9月18日旧包 devconfig-20260917-223044-15f482e1.zip、2,918,700,657字节与 SHA-256=23175b58deb25089f07637380a99f449ead3f699cffcb83deb1bbae9255cc42c 仅是旧时点证据。
- PCConfig 已发布 docs/recovery/devconfig-backup-delivery-2026-09-18.md,记录9月18日配置包云端同代对象回读;本轮未执行 LiveDrive 或上传,9月24日新配置包是否到达云端仍未知,不能把旧成功当本次完成。
- 同份 9 月 18 日来源验收记录 16 个冷备集合、H 配置包哈希与 G/H 微信完整核对;不同集合的全量、路径/大小与抽样证据分别成立,不能互相替代。9月23日新cold-last为18集合complete,devconfig/wechat两集合complete,但完成早于9月24日新G点。
与其他模块的关系
这是整套灾备的介质层:先把能离线完成的本地与 G 盘副本落稳,再单独尝试云端;H 盘冷备不归这个仓库直接写。
