将 ~/.openclaw 完整备份至 Git 仓库,支持定时备份、交互式恢复以及用于大模型文件的 Git LFS。
爪子保护器 : 将 OpenClaw 环境( ~/. openclaw) 全部备份到 Git 仓库
功能概述
爪子保护器 : 将 OpenClaw 环境( ~/. openclaw) 全部备份到 Git 仓库是一项面向实际任务的技能,主要用于支持预定备份、 交互恢复和网络故障的指数备份;Features.;
核心要点
- Fulll。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
claw-saver
将整个 OpenClaw 环境(~/.openclaw)备份至 Git 仓库。支持定时备份、交互式还原,以及在网络失败时采用指数退避重试策略。
功能特性
- 完整备份:备份
~/.openclaw下所有内容,包括 agents、skills、配置文件、知识库(kb)及 agent memory - 智能排除:仅忽略明确无害的运行时产物(如日志、缓存、
node_modules、canvas) - 定时备份:支持可配置的 cron 调度(默认每 5 小时执行一次)
- 原子化提交:采用双提交策略,确保备份文件与还原指南(
RESTORE.md)始终一致 - Git LFS 支持:大型模型文件自动通过 Git LFS 追踪
- 指数退避:推送失败时按 60s → 120s → 240s 延迟重试
- 陈旧锁保护:自动检测并清理已失效的备份进程锁
- 动态 .gitignore:基于实际目录结构扫描生成排除规则,不依赖硬编码假设
快速开始
# 1. 配置 Git 访问令牌 openclaw config set env.OPENCLAW_BACKUP_GIT_TOKEN# 2. 设置目标仓库地址 # 编辑 ~/.openclaw/skills/claw-saver/config.json,设置 "repo" 字段 # 示例:"repo": "https://cnb.cool/yourname/your-repo" # 3. 执行首次备份 openclaw backup run # 4. 启用自动定时备份(每 5 小时一次) openclaw backup enable-cron
CLI 命令
openclaw backup run # 立即执行一次备份 openclaw backup status # 显示最近一次备份时间及对应 commit hash openclaw backup restore # 从历史 commit 中交互式还原(interactive) openclaw backup enable-cron # 启用定时备份 openclaw backup disable-cron # 禁用定时备份 openclaw backup set-cron# 设置自定义调度表达式(例如 "0 */2 * * *")
配置
编辑 ~/.openclaw/skills/claw-saver/config.json:
{
"repo": "https://cnb.cool/yourname/your-repo",
"cron": "0 */5 * * *",
"lfs_threshold_mb": 10,
"lfs_extensions": [".bin", ".gguf", ".safetensors", ".pt", ".pth", ".onnx", ".msgpack", ".model"],
"push_retries": 3,
"push_retry_interval_ms": 60000
}
| 配置项 | 默认值 | 说明 |
|---|---|---|
repo |
(必填) | Git 仓库 URL |
cron |
0 */5 * * * |
备份调度表达式(cron 格式,使用系统本地时区) |
lfs_threshold_mb |
10 |
大于该大小(MB)的文件将通过 Git LFS 追踪 |
lfs_extensions |
(见上方 JSON 示例) | 需由 Git LFS 追踪的文件扩展名列表 |
push_retries |
3 |
推送失败时最大重试次数 |
push_retry_interval_ms |
60000 |
初始重试延迟(毫秒),后续每次翻倍 |
备份内容
除明确无害的运行时产物外,全部备份:
# === 已备份内容 === agents/ # Agent 配置、认证信息、会话数据 credentials/ # 渠道凭证与密钥 identity/ # 设备身份密钥 kb/ # 知识库(用户文档 + 向量数据库) lts/ # 长期脚本(如清理、OOM 防护) openclaw.json # 核心配置(含 tokens) skills/ # 所有已安装 skills 及其配置 workspace-* / # Agent 工作区、memory、learnings **/.learnings/ # Agent 自优化日志 **/.openclaw/ # 每个工作区的 OpenClaw 状态 ~/.openclaw/ 下所有其他目录
排除内容(仅限运行时产物)
以下内容为临时性或可重建数据,明确不参与备份:
.git/ # Git 仓库本身(仅本地存在) logs/ # 运行时日志 canvas/ # Canvas 运行时状态 media/ # 已上传的媒体文件 npm/ # NPM 包(可通过 npm install 重建) cron/runs/ # Cron 执行历史 **/node_modules/ # 依赖包(可通过 npm install / pip install 重建) **/__pycache__/ # Python 字节码缓存 **/.cache/ # 通用缓存 **/dreaming/ # 短期记忆状态 *.tmp, *.bak # 系统临时文件 .backup.lock # 运行时锁文件
用户数据原则:如有疑问,默认备份。凭证(credentials)、身份密钥(identity keys)、知识库(kb)、agent memory 和学习所得数据(learned data)均被完整保留。
安全性
- 令牌隔离:Git 访问令牌仅存储于
~/.openclaw/.git/config(本地,永不推送到备份仓库)和 cron 环境变量中(仅限本机系统) - 提交中不含令牌:还原指南(
RESTORE.md)与提交信息中仅包含仓库 URL,绝不包含访问令牌 - 屏蔽 stderr 输出:将
git push的 stderr 重定向,防止错误信息中泄露令牌 - 排除 .git 目录:
.git/已加入.gitignore,因此其中包含远程 URL(含令牌)的.git/config永远不会被备份
还原操作
openclaw backup restore
该命令会将仓库克隆至临时目录,检出指定 commit,并将文件复制回 ~/.openclaw。运行中的备份进程不受影响(skills/claw-saver 在还原期间持续运行)。
还原完成后,请执行:
openclaw gateway restart
还原指南
每次备份均会在对应 commit 中嵌入一份 RESTORE.md 文件,其中包含:精确的 commit hash、克隆指令,以及本次备份所排除的文件列表,便于您识别哪些内容需手动恢复。
架构设计
skills/claw-saver/
lib/
backup.js # 核心编排逻辑(加锁、暂存、提交、推送)
git.js # Git 操作封装(init、add、commit、push、clone)
lfs.js # Git LFS 初始化与文件追踪逻辑
restore.js # 交互式还原主逻辑
scripts/
cli.js # CLI 入口(run/status/restore/cron 等命令)
config.json # 用户配置(仓库地址、cron 表达式、LFS 设置等)
锁机制
通过基于原子化 mkdir 的锁防止并发备份:
- 锁目录路径:
~/.openclaw/.backup.lock/(内部含 PID 文件) - 若检测到陈旧锁(持有者 PID 已不存在),则强制接管
- 无论备份成功或失败,锁均通过
finally{}块确保释放
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍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
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习