openclaw升级前备份工作方案:规范化流程与关键数据保护

一、背景与必要性
OpenClaw 作为本机核心的 AI Gateway,承载了丰富的运行时状态:定时任务(Cron)、渠道认证凭证(QQ Bot / Telegram)、插件扩展、本机身份密钥,以及长期积累的会话记忆。在执行版本升级前,如果没有系统化的备份方案,一旦升级过程中出现配置损坏或兼容性问题,恢复成本将非常高。
本文档正是为了解决这一问题而设计——将升级前的准备工作的系统化、清单化,确保在任何情况下都能快速回滚到升级前的健康状态。
二、OpenClaw 状态存储架构
在制定备份方案之前,需要先理解 OpenClaw 的数据存储结构。OpenClaw 的状态数据主要分布在两个区域:
2.1 核心状态目录
| 目录 | 路径 | 说明 |
|---|---|---|
| OpenClaw 状态根目录 | C:\Users\openclaw\.openclaw\ |
包含所有配置、凭证、运行时数据 |
2.2 程序本体目录
| 目录 | 路径 | 说明 |
|---|---|---|
| npm 全局包目录 | %APPDATA%\npm\node_modules\openclaw\ |
OpenClaw 程序本体,通过 npm install -g openclaw 安装 |
2.3 关键数据一览
| 数据类型 | 所在目录 | 重要性 | 说明 |
|---|---|---|---|
| 定时任务配置 | cron/jobs.json |
🔴 高 | Cron 调度任务,含 Weekly Release Tracker |
| 渠道认证凭证 | credentials/ |
🔴 高 | API Key、Channel Token 等 |
| 设备身份密钥 | identity/ |
🔴 高 | device-auth.json、device.json |
| 第三方插件 | extensions/ |
🔴 高 | 含 QQ Bot(openclaw-qqbot) |
| 会话记录 | agents/ |
🟡 中等 | session 状态文件 |
| 配对设备信息 | devices/ |
🟡 中等 | paired.json、pending.json |
| 浏览器 Profile | browser/ |
🟡 中等 | 自动化浏览器数据 |
| Telegram 配置 | telegram/ |
🟡 中等 | Telegram Bot 凭证 |
| 工作区文件 | workspace/ |
🟡 中等 | 含 site-hyh 博客项目 |
| 记忆文件 | memory/ |
🟡 中等 | 长期记忆数据 |
三、备份方案详解
3.1 内置备份命令:openclaw backup create
OpenClaw 提供了开箱即用的 openclaw backup create 命令,是备份的核心手段。其功能是将整个 ~/.openclaw 目录打包为一个 .tar.gz 归档文件,并支持写入后自动校验。
命令帮助:
openclaw backup create [options]常用选项:
| 选项 | 说明 |
|---|---|
--dry-run |
仅预览备份计划,不写入文件 |
--verify |
写入后自动校验归档完整性 |
--json |
输出 JSON 格式结果 |
--no-include-workspace |
不包含 workspace 目录(减小归档体积) |
--only-config |
仅备份活跃的 JSON 配置文件 |
--output <path> |
指定归档输出路径或目录 |
执行示例:
# 完整备份(含 workspace)+ 写入后验证
openclaw backup create --verify
# 仅备份状态(不含 workspace)
openclaw backup create --no-include-workspace --verify
# 仅备份配置文件
openclaw backup create --only-config
# 预览备份计划(不写入)
openclaw backup create --dry-run --jsondry-run 预览结果示例:
{
"createdAt": "2026-04-03T10:23:06.695Z",
"archiveRoot": "2026-04-03T10-23-06.695Z-openclaw-backup",
"archivePath": "C:\\Users\\openclaw\\2026-04-03T10-23-06.695Z-openclaw-backup.tar.gz",
"dryRun": true,
"includeWorkspace": true,
"assets": [
{
"kind": "state",
"sourcePath": "C:\\Users\\openclaw\\.openclaw",
"archivePath": ".../2026-04-03T10-23-06.695Z-openclaw-backup/payload/windows/..."
}
]
}3.2 归档校验命令:openclaw backup verify
备份完成后,可通过 openclaw backup verify 验证归档完整性:
openclaw backup verify <archive-path> --json该命令会检查归档的 manifest 和 payload 布局,确保备份文件未损坏。
3.3 备份文件存放位置与最佳实践
默认存放位置
openclaw backup create 默认将归档文件写入执行命令时的当前工作目录(Current Working Directory)。即在哪个目录执行命令,归档就生成在哪个目录。
默认命名格式:
YYYY-MM-DDTHH-MM-SS.fffZ-openclaw-backup.tar.gz
示例:C:\Users\openclaw\2026-04-03T10-23-06.695Z-openclaw-backup.tar.gz
使用 --output 自定义存放路径
# 输出到指定目录(目录不存在则自动创建)
openclaw backup create --verify --output "D:\OpenClaw-Backups"
# 输出到当前用户目录下的 Backups 文件夹
openclaw backup create --verify --output "C:\Users\openclaw\Backups"推荐的目录结构
建议在执行备份前,先创建专门的备份目录,所有备份归档集中存放,便于后续管理:
# 创建备份目录(如不存在)
New-Item -ItemType Directory -Path "C:\Users\openclaw\Backups" -Force
# 切换到备份目录
cd "C:\Users\openclaw\Backups"
# 执行备份
openclaw backup create --verify归档文件大小参考
| 备份模式 | 预估归档大小 | 说明 |
|---|---|---|
| 完整备份(含 workspace) | 约 130–150 MB | 压缩率约 50% |
| 精简备份(不含 workspace) | 约 50–70 MB | workspace 已由 Git 托管 |
归档文件管理最佳实践
| 原则 | 说明 |
|---|---|
| 集中存放 | 所有备份归档统一放在 Backups/ 目录,便于查找管理 |
| 定期清理 | 建议保留最近 3–5 次备份,过旧归档价值有限且占空间 |
| 校验优先 | 每次备份务必加 --verify 参数,确保归档可用 |
| 不离线 | 重要备份定期复制到外部存储或云盘,防止本地磁盘故障 |
| 命名不改 | 归档文件名已包含时间戳,不要重命名,以便追溯历史 |
相关命令速查
# 1. 预览备份计划(不写入文件)
openclaw backup create --dry-run --json
# 2. 完整备份 + 校验,写入指定目录
cd "C:\Users\openclaw\Backups"
openclaw backup create --verify
# 3. 精简备份(不含 workspace) + 校验
cd "C:\Users\openclaw\Backups"
openclaw backup create --no-include-workspace --verify
# 4. 仅备份配置文件
openclaw backup create --only-config
# 5. 校验已有归档
openclaw backup verify "C:\Users\openclaw\Backups\2026-04-03T...-openclaw-backup.tar.gz" --json四、规范化备份执行步骤
Step 1:记录当前版本与运行状态
# 记录当前版本
openclaw --version > version-info.txt
# 运行健康检查,保存输出
openclaw doctor > doctor-output.txt需记录的关键信息:
- 当前运行版本(如
OpenClaw 2026.3.13) - 已加载插件列表与版本
- Gateway 配置状态(bind 模式、端口、认证方式)
- Cron 任务列表:
openclaw cron list
Step 2:确认 Workspace Git 状态
site-hyh 由 Git 托管,升级前应确保无待提交内容:
cd "C:\Users\openclaw\.openclaw\workspace\site-hyh"
git status若有未提交内容,建议执行一次 commit 后再继续。
Step 3:创建备份目录并执行主备份
# 创建专用备份目录(如不存在)
New-Item -ItemType Directory -Path "C:\Users\openclaw\Backups" -Force
# 切换到备份目录
cd "C:\Users\openclaw\Backups"
# 执行主备份(完整版,含 workspace + 写入后验证)
openclaw backup create --verifyStep 4:确认归档文件已生成
# 确认归档文件存在
Get-ChildItem "C:\Users\openclaw\Backups\*.tar.gz" | Sort-Object LastWriteTime -Descending | Select-Object Name, @{Name="SizeMB";Expression={[math]::Round($_.Length/1MB,2)}}, LastWriteTime归档命名格式:YYYY-MM-DDTHH-MM-SS.fffZ-openclaw-backup.tar.gz
Step 5:手动备份 Gateway 启动脚本
gateway.cmd 由 OpenClaw 自动生成,升级后会以默认配置重新创建。但若当前版本中有手动添加的环境变量或启动参数,需单独保留:
Copy-Item `
"C:\Users\openclaw\.openclaw\gateway.cmd" `
"C:\Users\openclaw\.openclaw\gateway.cmd.backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"Step 6:备份额外配置文件(补充)
除归档外,建议单独备份以下文件以便快速查阅:
# 复制配置备份
Copy-Item `
"C:\Users\openclaw\.openclaw\openclaw.json" `
"C:\Users\openclaw\.openclaw\backup-openclaw.json-$(Get-Date -Format 'yyyyMMdd-HHmmss')"五、升级前验证清单
完成以上步骤后,确认以下检查项全部满足后再执行升级:
| # | 检查项 | 验证方法 | 预期结果 |
|---|---|---|---|
| 1 | 归档文件存在且非空 | Get-Item *.tar.gz |
文件存在,Length > 0 |
| 2 | 归档完整性校验通过 | openclaw backup verify <archive> |
输出 verified: true |
| 3 | gateway.cmd 备份存在 | Test-Path gateway.cmd.backup* |
True |
| 4 | Git 工作区 clean | git status |
无变更或已提交 |
| 5 | 当前版本已记录 | version-info.txt 存在 |
包含版本号 |
| 6 | Cron 任务已确认 | openclaw cron list |
显示下周任务存在 |
| 7 | Doctor 健康检查通过 | openclaw doctor |
无非致命错误 |
六、升级后恢复指引
6.1 配置文件级恢复(推荐)
若升级后仅配置文件损坏,可从归档中解压单个文件:
# 解压单个配置文件
tar -xzf <archive>.tar.gz --strip-components=2 `
"openclaw-backup/payload/windows/C/Users/openclaw/.openclaw/openclaw.json"
# 重启 Gateway 生效
openclaw gateway restart6.2 完整还原(极端情况)
# 停止 Gateway
openclaw gateway stop
# 备份当前(升级后)目录(保留现场)
Move-Item `
"C:\Users\openclaw\.openclaw" `
"C:\Users\openclaw\.openclaw-upgraded-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
# 从归档解压完整恢复
tar -xzf <archive>.tar.gz -C "C:\Users\openclaw\"
# 重启 Gateway
openclaw gateway start6.3 无需备份的内容
以下目录和文件在升级后可自动重新生成,备份时无需包含:
| 目录/文件 | 原因 |
|---|---|
logs/ |
运行日志,升级后可自动重新生成 |
delivery-queue/ |
临时队列,Gateway 重启后清空 |
completions/ |
Shell 自动补全脚本,由 OpenClaw 自动生成 |
update-check.json |
版本检查缓存,升级后自动刷新 |
*.bak 系列文件 |
openclaw.json 的自动备份,由 OpenClaw 维护 |
七、Cron 任务特殊说明
当前已注册的”OpenClaw Weekly Release Tracker”任务(ID:8a90f5c4-0422-4de1-970c-56998401e1ea)位于 cron/jobs.json 中。该文件已包含在 openclaw backup create 的归档范围内,升级后可直接从备份中还原。
升级后建议:
# 升级完成后,确认 Cron 任务是否正常
openclaw cron list
# 如任务丢失,从备份还原
$backupContent = Get-Content "<archive-path>" -Raw
# 解压并还原 cron/jobs.json八、总结
本备份方案的核心要点:
- 以
openclaw backup create --verify为主干,一键打包所有关键状态数据,并自动校验归档完整性 - 关键数据优先保护:cron 任务、credentials、identity、extensions 这四类数据是备份的重中之重
- 验证清单化:升级前必须逐项确认验证清单,确保备份可用的前提下再执行升级
- 恢复路径清晰:配置文件级恢复和完整还原两条路径,确保在不同故障场景下都有应对方案
遵循本方案,可以在升级过程中始终保持可回滚能力,将升级风险控制在最低水平。
助手点评与分析
这份备份方案最值得称道的地方,是对”备份完整性”和”备份可用性”两个概念的清晰区分。很多人在备份时只关心”文件是否复制了”,却忽略了”备份是否真的可用”这一关键问题。通过 --verify 参数在写入后自动校验,以及升级前的逐项验证清单,这套方案实际上是在建立一个”备份可信度”的闭环。
另一个值得注意的设计是,将 Cron 任务、凭证、身份密钥、插件这四类数据标记为”高重要性”,并与”会话记录”、“工作区”这类”可重建”的数据区分对待。这种分级思维在制定备份策略时非常关键——它帮助我们在有限的存储空间和备份时间成本下,把有限的保护精力集中在真正不可丢失的数据上。
最后,方案中对”无需备份内容”的明确说明同样重要。一个好的备份方案不仅要告诉你要备份什么,还要告诉你什么不需要备份——这能避免产生大量冗余备份造成的存储浪费和后续管理混乱。整体而言,这是一套务实、系统、可操作的备份工作方案。