安全加密的OpenClaw备份至S3/R2/B2/MinIO,支持精简模式、可选定时任务和分阶段恢复。仅在明确请求备份或恢复OpenClaw时使用。
OpenClaw 云备份
功能概述
OpenClaw 云备份是一项面向实际任务的技能,主要用于OpenClaw 本地备份的云层;复制 Openclaw 备份创建;
核心要点
- (配置、 证书、 一致的 SQLite 快照、 工作空间), 然后是 GPG 加密。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
OpenClaw 云备份
OpenClaw 原生备份的云层组件。封装 openclaw backup create(配置、凭证、一致的 SQLite 快照、workspace),然后使用 GPG 加密并将归档上传至任意兼容 S3 的存储桶,支持保留策略、完整性校验与分阶段恢复。
所有命令格式:bash "{baseDir}/scripts/cloud-backup.sh" <子命令>
何时使用此技能 —— 以及何时不应使用
仅在用户明确提出关于 OpenClaw 备份的请求时执行:例如“备份 openclaw”、“恢复我的 openclaw 状态”、“为 openclaw 配置云备份”、“/cloud-backup”,以及类似表述。
- 通用性请求(如“备份我的项目”、“保存这个文件”、“恢复数据库”)不属于本技能职责范围。在操作前,请先向用户确认其真实意图。
- 切勿将本技能作为其他任务的副作用、主动触发或“顺手为之”地执行。
- 只读子命令(
status、list、verify、schedule,以及任何带--dry-run参数的命令)可在用户发起备份相关询问后自由运行;其余所有操作均须通过下方所述的确认关卡(confirmation gates)。
确认关卡
在执行任何改变状态的操作之前,必须向用户清晰展示即将发生的全部动作,并获得其明确的“是”确认。每个操作对应一个独立关卡 —— 不得重复询问用户刚确认过的内容,也不得批量确认多个操作。
| 操作 | 执行前必须向用户展示的内容 |
|---|---|
写入配置(openclaw config patch) |
将要写入的每一个 key=value 对,原样展示。禁止写入任何密钥信息 —— 密钥处理详见“Credentials”章节。 |
| 首次向新目标执行备份 | backup 的输出:作用范围、敏感性判定结果、加密状态、目标路径 s3://bucket/prefix。 |
| 存储/替换凭证 | 仅展示文件路径 + 存储方式(AWS profile / 密码短语文件)。密钥值本身不得经由本次对话传输 —— 用户需自行运行对应命令完成密钥写入。 |
| 恢复(restore) | 步骤 1:始终先执行 restore 并展示待恢复的文件列表。步骤 2:明确指出哪些路径将被覆盖(分阶段恢复写入全新目录; --in-place 则直接覆盖当前运行态),随后要求用户明确确认“是”。严禁跳过 dry-run 步骤。 |
| 清理(prune) | prune --dry-run 的输出:将被删除的归档(本地与远程)名称列表。 |
| 创建调度任务(schedule) | 完整的 openclaw cron add ... 命令及其完整有效载荷文本(参见“Scheduling”章节)。 |
对已确认过的目标执行重复的手动备份无需新增确认关卡 —— 用户的请求本身即构成确认。但仍须在执行前回显一行简明计划(例如:“全量备份,已加密 → s3://bucket/prefix”)。
无人值守运行(cron)
调度任务的有效载荷仅表示该次运行对 backup 和 prune 操作已获操作员预授权。在无人值守运行中:严禁执行 restore、严禁修改配置、严禁创建或修改调度任务、严禁存储凭证。
备份模式 —— 各模式包含内容说明
当用户询问“哪些内容会被备份?”时,请回显下表:
| 模式 | 包含内容 | 默认排除内容 | 敏感性 |
|---|---|---|---|
backup full(默认) |
openclaw.json、credentials/ 目录、密钥存储、state + agent SQLite 快照、agent memory、workspace、已安装的 skills | 会话记录(session transcripts)、codex 缓存/日志、qmd embedding 缓存(模型 + 索引)、tools/、media/、logs/、旧备份 | 敏感 —— 强制加密 |
backup full --everything |
上述全部内容 + 会话记录和 codex 历史 | 仅排除历史备份归档 | 敏感 —— 强制加密 |
backup settings |
openclaw.json、密钥存储、credentials/、认证文件(auth files) | 其余所有内容 | 敏感 —— 始终加密,不可禁用 |
backup workspace |
workspace 目录(skills、memory 文件等) | 所有 state/config | 默认加密;此处唯一允许使用 --no-encrypt |
“敏感 —— 强制加密” 表示脚本拒绝为此作用域生成明文归档(退出码 14)。请勿绕过该限制;若用户明确需要可共享的明文归档,请改而推荐 config.excludeSecrets=true。用户还可通过 config.exclude / config.include(相对于 state 的 glob 模式)精细调整备份范围。
子命令
| 命令 | 功能说明 | 是否需确认关卡? |
|---|---|---|
backup [full|settings|workspace] [--everything] [--no-upload] [--dry-run] [--json] |
创建归档、加密、上传、应用保留策略 | dry-run 免确认;其余操作参见确认关卡说明 |
list |
列出本地与远程备份;标记失败残留物 | 否 |
status |
健康状态:最近一次备份时间、凭证来源、敏感性判定、调度状态、连通性 | 否 |
verify [name|--latest] [--deep] |
校验和验证 + 解密 + 归档内容列表;--deep 还将调用 openclaw backup verify |
否 |
restore |
默认执行分阶段恢复(staged restore) | 是 —— 分两步确认 |
prune [--dry-run] |
执行保留策略;清理失败残留物 | 是 |
schedule |
打印启用 cron 的命令(不实际创建任何任务) | 否 |
setup |
初始化检查清单 + 连接测试(绝不写入配置) | 配置写入操作单独受关卡管控 |
退出码(请精确报告,尤其在 cron 场景中):
0 成功 · 3 成功但含警告 · 4 参数错误 · 10 其他进程持有锁 · 11 缺少依赖 · 12 磁盘空间不足 · 13 云服务不可达/凭证错误 · 14 加密必需但不可用 · 20–25 创建/过滤/加密/上传/校验失败 · 30 恢复失败。
首次配置流程
请严格按 references/setup-flow.md 中的步骤操作。概要如下:选择服务商 → 用户依据各服务商指南创建最小权限的存储桶级密钥 → 将凭证存于 OpenClaw 配置之外(推荐使用 AWS profile)→ 写入非密钥配置(需确认关卡)→ 测试连接 → 使用生成的密码短语文件启用加密 → 执行首次手动备份(需确认关卡)→ 仅在此之后提供调度选项(需确认关卡)。
凭证管理
解析顺序与存储规则详见 references/credentials.md。硬性规则如下:
- 严禁将访问密钥或密码短语写入 openclaw.json(禁止使用
skills.entries.cloud-backup.env.*)。备份归档会包含该文件:若配置中存在明文凭证,则该凭证将被嵌入其所保护的每一个备份归档中。 - S3 凭证应存于 AWS 命名 profile(
config.profile,推荐)或由操作员管理的进程环境变量中;密码短语则应存于权限为 600 的密码短语文件中(config.passphraseFile)。 - 若操作员已部署 OpenClaw 的密钥存储服务,可改由该服务提供凭证:
config.accessKeyRef/config.secretKeyRef/config.passphraseRef支持 OpenClaw SecretRefs({source: env|file|exec}),其解析上下文为.secrets.providers—— 包括类 1Password 的 exec 提供者。配置了但无法解析的引用将导致运行中止;不会降级回退。 - 优先采用密钥完全不出现于本对话中的流程:例如用户自行运行
aws configure --profile ...及密码短语生成命令。 - 若脚本输出关于明文配置凭证的 DEPRECATED 警告,请原样呈现给用户,并提供
references/credentials.md中的迁移指引。
调度机制 —— 严格启用制(opt-in only)
严禁默认、隐式或因“备份理应被调度”等原因自动创建、修改或启用 cron 任务。技能文档仅描述如何配置 cron;是否启用,完全由用户决定。
仅在首次成功完成手动备份后,提供一次调度选项:
“备份已通过验证。是否需要我为您每日调度?我将创建以下 cron 任务 —— 在您明确确认前,不会执行任何调度操作:”
随后运行 schedule 子命令打印确切命令,根据用户的实际环境调整时间、时区及交付方式,完整展示该命令,并等待用户明确确认“是”后才执行。若用户拒绝:立即放弃,且后续运行中不再重提(首次执行前请先检查 openclaw cron list —— 若已有 cloud-backup 相关任务,则永不重提)。如需移除调度任务,请使用:openclaw cron rm 。
错误处理(面向你,即代理)
- 将脚本 stderr 输出原样呈现给用户(可裁剪至相关行),切勿模糊总结错误,亦不可隐藏 WARN 级别警告。
- 非零退出码:依据退出码表诊断问题、解释原因,并仅提出一项修复建议。严禁自动重试
restore、prune或任何openclaw cron修改类操作。backup仅可在问题根源已修复且用户同意的前提下重试一次。 - 严禁臆造存储桶名、端点地址或密码短语。缺失值 → 主动询问。
- 退出码 14(必需加密但无可用密码短语)为设计上的硬性失败 —— 不得通过
--no-encrypt或临时密码短语绕过。请运行 setup 流程。 - 脚本会在失败时自动清理暂存区;若报告无法清理,请向用户明确告知残留路径。
参考文档(按需查阅)
references/credentials.md—— 凭证解析链、v1→v2 迁移、警告说明references/setup-flow.md—— 引导式首次配置流程references/providers/{aws-s3,cloudflare-r2,backblaze-b2,digitalocean-spaces,minio,other}.mdreferences/security.md—— 威胁模型、恢复安全性、事件响应
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
最新文章
