OpenClaw 备份预览

备份预览

使用 openclaw backup create 可以对小龙虾进行备份,但备份前可以看看备份位置、包含哪些文件等参数。那么就可以使用 openclaw backup create --dry-runopenclaw backup create --dry-run --json指令。

--dry-run

执行命令:

openclaw backup create --dry-run

执行结果:

admin@192 workspace % openclaw backup create --dry-run


🦞 OpenClaw 2026.5.7 (eeef486) — Your config is valid, your assumptions are not.

Backup archive: /Users/admin/2026-05-24T01-29-00.242Z-openclaw-backup.tar.gz
Included 1 path:
- state: ~/.openclaw
Skipped 1 path:
- workspace: ~/.openclaw/workspace (covered by ~/.openclaw)
Dry run only; archive was not written.

结果解读:

输出解读

这次 dry-run 的结果很清晰,逐项说明如下:


归档路径

Backup archive: /Users/admin/2026-05-24T01-29-00.242Z-openclaw-backup.tar.gz

默认输出在当前目录下,文件名带 ISO 时间戳。由于你没有指定 --output,所以使用了默认位置。注意此时是 dry-run,文件并未实际写入。


Included 1 path(纳入备份的源)

- state: ~/.openclaw

只纳入了一个源:状态目录 ~/.openclaw。这说明你的配置文件、凭证目录等都位于这个状态目录内部,不需要作为独立源重复包含。


Skipped 1 path(跳过的源)

- workspace: ~/.openclaw/workspace (covered by ~/.openclaw)

这是本次 dry-run 最关键的一条信息。工作区目录 ~/.openclaw/workspace 被跳过了,原因写得很清楚:它已经被 ~/.openclaw 这个状态目录覆盖了

这完全对应文档中的说明:

"如果配置、凭证目录或工作区已经位于状态目录内部,它们不会作为单独的顶级备份源重复包含。"

换句话说,~/.openclaw/workspace~/.openclaw 的子目录,状态目录的备份已经包含了工作区的全部内容,没必要再单独列一个源。这不是 --no-include-workspace 导致的排除,而是路径去重的结果——你的工作区文件依然会被备份


配置状态

🦞 OpenClaw 2026.5.7 (eeef486) — Your config is valid, your assumptions are not.

配置文件校验通过,所以没有触发文档中提到的"配置无效时快速失败"行为。


总结

项目 结果
配置是否有效 有效
备份源数量 1 个(~/.openclaw,已涵盖工作区)
工作区是否被备份 是(作为状态目录的一部分)
归档是否写入 否(dry-run 模式)
凭证/配置是否包含 是(位于状态目录内)

如果确认无误,去掉 --dry-run 即可正式创建备份。如果想要更小的归档(排除工作区),可以加上 --no-include-workspace;如果只需要配置文件副本,则用 --only-config

--dry-run --json

执行命令:

openclaw backup create --dry-run --json

执行结果:

admin@192 workspace % openclaw backup create --dry-run --json
{
  "createdAt": "2026-05-24T01:30:43.086Z",
  "archiveRoot": "2026-05-24T01-30-43.086Z-openclaw-backup",
  "archivePath": "/Users/admin/2026-05-24T01-30-43.086Z-openclaw-backup.tar.gz",
  "dryRun": true,
  "includeWorkspace": true,
  "onlyConfig": false,
  "verified": false,
  "assets": [
    {
      "kind": "state",
      "sourcePath": "/Users/admin/.openclaw",
      "displayPath": "~/.openclaw",
      "archivePath": "2026-05-24T01-30-43.086Z-openclaw-backup/payload/posix/Users/admin/.openclaw"
    }
  ],
  "skipped": [
    {
      "kind": "workspace",
      "sourcePath": "/Users/admin/.openclaw/workspace",
      "displayPath": "~/.openclaw/workspace",
      "reason": "covered",
      "coveredBy": "~/.openclaw"
    }
  ]
}

结果解读:

JSON 输出逐字段解读

这条命令将 dry-run 的结果以 JSON 结构化输出,方便脚本化处理。逐项分析如下:


顶层元信息

"createdAt": "2026-05-24T01:30:43.086Z",
"archiveRoot": "2026-05-24T01-30-43.086Z-openclaw-backup",
"archivePath": "/Users/admin/2026-05-24T01-30-43.086Z-openclaw-backup.tar.gz",
"dryRun": true,
"includeWorkspace": true,
"onlyConfig": false,
"verified": false
字段 含义
createdAt 计划创建时间(ISO 8601 UTC)
archiveRoot 归档内部的根目录名,用作 tarball 中的顶层文件夹
archivePath 归档文件的完整输出路径,带时间戳
dryRun true,表示本次未实际写入
includeWorkspace true,工作区备份处于启用状态
onlyConfig false,未使用 --only-config 模式
verified false,未使用 --verify 模式(dry-run 下也无从验证)

assets(备份源)

"assets": [
  {
    "kind": "state",
    "sourcePath": "/Users/admin/.openclaw",
    "displayPath": "~/.openclaw",
    "archivePath": "2026-05-24T01-30-43.086Z-openclaw-backup/payload/posix/Users/admin/.openclaw"
  }
]

只有一个备份源,类型为 state

  • sourcePath:归档前的原始绝对路径
  • displayPath:用 ~ 简化显示的路径
  • archivePath:在 tarball 内部的存储路径。可以看到归档内部结构为 payload/posix/ + 原始路径,说明 OpenClaw 按平台(posix)分层组织载荷

对应文档所述:

"归档载荷会存储这些源树中的文件内容,嵌入的 manifest.json 会记录解析后的绝对源路径,以及每个资产使用的归档布局。"


skipped(跳过的路径)

"skipped": [
  {
    "kind": "workspace",
    "sourcePath": "/Users/admin/.openclaw/workspace",
    "displayPath": "~/.openclaw/workspace",
    "reason": "covered",
    "coveredBy": "~/.openclaw"
  }
]
  • reason: "covered" — 被父源覆盖,不是被排除
  • coveredBy: "~/.openclaw" — 说明 ~/.openclaw 的备份已经包含了这个子目录

这与上一条非 JSON dry-run 的输出完全吻合,只是现在以结构化数据呈现。


与上一次 dry-run 的对比

对比项 非 JSON 输出 JSON 输出
备份源 state: ~/.openclaw assets[0].kind: "state"
跳过原因 (covered by ~/.openclaw) "reason": "covered", "coveredBy": "~/.openclaw"
归档内部路径 未展示 完整展示了 tarball 内的 archivePath
配置选项状态 未展示 展示了 includeWorkspaceonlyConfigverified

JSON 输出的信息量明显更大,特别适合集成到 CI/CD 流水线中做条件判断,例如:

  • 检查 assets 数量确认备份范围
  • 检查 skipped 列表确认是否有意外遗漏
  • 通过 archivePath 拼接后续的 openclaw backup verify 命令

如果准备正式执行,去掉 --dry-run 即可。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容