mcpField
M
myclaw-backup

myclaw-backup

github.com/leoyeai云与 DevOps66293 次安装34 周前更新
代码仓库

关于 myclaw-backup

MyClaw Backup 是用于 OpenClaw 的备份与恢复技能,面向迁移或保护 OpenClaw 实例数据的用户。它将关键数据打包为 `.tar.gz`,并提供带令牌保护的 HTTP 管理界面及定时备份脚本。

主要功能

  1. 01打包关键 OpenClaw 数据
  2. 02从归档恢复并支持演练
  3. 03通过 HTTP 管理备份归档
  4. 04按计划自动执行备份

适用场景

  1. 01迁移到新的 OpenClaw 实例
  2. 02恢复配置、凭据和会话历史
  3. 03定期创建 OpenClaw 备份

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leoyeai/openclaw-backup --skill myclaw-backup

安装后在 Claude Code 中输入/myclaw-backup确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.it.md
README.zh-CN.md
README.md
README.ru.md
README.es.md
README.ja.md
README.de.md
.gitignore
LICENSE
README.fr.md
openclaw-backup.skill
references/
what-gets-saved.md
scripts/
backup.sh
schedule.sh
serve.sh
server.js
restore.sh
ui.html

详细介绍

MyClaw 备份

基于 MyClaw.ai 构建 — 这是一款 AI 个人助手平台,为每位用户提供一台完整服务器,并支持完整的代码控制、网络连接和工具访问。此技能是 MyClaw.ai 开放技能生态的一部分。

将所有关键 OpenClaw 数据备份到单个 .tar.gz 压缩包,并可将其恢复到任意 OpenClaw 实例。内置 HTTP 服务,可通过浏览器管理备份。

⚠️ 信任边界与安全模型

此技能会处理高度敏感的数据:机器人令牌、API 密钥、频道凭据、会话历史。使用前请了解安全模型:

各脚本的作用
  • backup.sh — 读取 ~/.openclaw/,并在磁盘上写入一个权限为 chmod 600 的压缩包。不访问网络。
  • restore.sh — 根据压缩包覆盖 ~/.openclaw/。需要输入 yes 确认。务必先运行 --dry-run。
  • serve.sh / server.js — 启动本地 HTTP 服务。必须提供令牌(未提供时会拒绝启动)。Shell 执行端点(/backup、/restore)仅限 localhost 访问——远程访问只能下载和上传文件,不能触发执行。
  • schedule.sh — 修改系统 crontab,按计划运行 backup.sh。添加前会显示 cron 条目。使用 --disable 移除。
访问控制摘要
端点远程访问(需要令牌)仅限 localhost
GET /health✅(无需令牌)—
GET /backups✅—
GET /download/:file✅—
POST /upload✅—
POST /backup❌✅
POST /restore❌✅
最佳实践
  • 启动 HTTP 服务时,绝不要省略 --token
  • 未配置 TLS 时,绝不要将 HTTP 服务暴露到公共互联网
  • 执行恢复前,务必先运行 restore.sh --dry-run
  • 安全存储备份压缩包——其中包含所有凭据

依赖项

需要:node、rsync、tar、python3、openclaw CLI(OpenClaw 实例上通常都已安装)。

检查:which node rsync tar python3 openclaw

脚本

脚本用途
scripts/backup.sh [output-dir]创建备份(默认:/tmp/openclaw-backups/)
scripts/restore.sh <archive> [--dry-run] [--overwrite-gateway-token]恢复——务必先运行 dry-run
scripts/serve.sh start --token TOKEN [--port 7373]启动 HTTP 服务——必须提供令牌
scripts/serve.sh stop|status停止/检查服务
scripts/schedule.sh [--interval daily|weekly|hourly]系统 cron 定时任务

网关令牌行为(v1.6+): 默认情况下,restore.sh 在恢复 openclaw.json 后会保留新服务器的 gateway.auth.token。这样可避免迁移后在 Control UI / Dashboard 中出现 "gateway token mismatch" 错误。仅在同一服务器上进行完整灾难恢复时,才使用 --overwrite-gateway-token。

备份内容

完整详情请参阅 references/what-gets-saved.md。

包含: 工作区(MEMORY.md、技能、Agent 文件)、openclaw.json(机器人令牌 + API 密钥)、凭据、频道配对状态、Agent 配置 + 会话历史、设备、身份、cron 作业、guardian 脚本。

不包含: 日志、二进制媒体、node_modules、canvas 系统文件。

常见工作流

创建备份
bash scripts/backup.sh /tmp/openclaw-backups
# → /tmp/openclaw-backups/openclaw-backup_TIMESTAMP.tar.gz (chmod 600)
恢复——务必先运行 dry-run
# Step 1: preview what will change
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz --dry-run

# Step 2: review the output, then apply
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz

恢复脚本会在覆盖任何内容之前保存恢复前快照。

HTTP 服务——必须提供令牌
# Token is required — server refuses to start without one
bash scripts/serve.sh start --token $(openssl rand -hex 16) --port 7373
# → http://localhost:7373/?token=<generated-token>

未配置反向代理 + TLS 时,绝不要在公共网络上分享此 URL。

Web UI 提供以下功能:创建备份、下载 .tar.gz、上传、dry-run 预览、恢复。

HTTP API(除 /health 外均需要令牌):

  • GET /health — 健康检查(无需身份验证,只读)
  • GET /backups — 列出备份
  • POST /backup — 创建备份
  • GET /download/:filename — 下载压缩包
  • POST /upload — 上传压缩包(multipart,字段:backup)
  • POST /restore/:filename — 恢复;添加 ?dry_run=1 可预览
迁移到新实例

旧机器:

bash scripts/serve.sh start --token MYTOKEN --port 7373

新机器(安装 OpenClaw 后):

# Download
curl -O "http://OLD_IP:7373/download/openclaw-backup_TIMESTAMP.tar.gz?token=MYTOKEN"

# Always dry-run first
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz --dry-run

# Apply
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz
# All channels reconnect automatically — no re-pairing needed
安排每日自动备份(OpenClaw cron)
{
  "name": "daily-openclaw-backup",
  "schedule": { "kind": "cron", "expr": "0 3 * * *", "tz": "UTC" },
  "payload": {
    "kind": "agentTurn",
    "message": "Run a backup using the myclaw-backup skill. Output dir: /tmp/openclaw-backups",
    "timeoutSeconds": 120
  },
  "sessionTarget": "isolated"
}

恢复后:自动恢复报告

restore.sh 完成后,会写入 workspace/.restore-complete.json。在下一次心跳/启动时,Agent 应:

  1. 检查 workspace/.restore-complete.json 是否存在
  2. 如果存在:读取文件,向用户发送恢复报告,然后删除该文件(一次性操作——绝不重复报告)
  3. 使用用户的主要语言发送报告(从 workspace/USER.md 读取)
报告格式(根据 USER.md 调整语言)
✅ [Restore complete — in user's language]

📦 Backup: {backup_name}
🤖 Agent: {agent_name}
🕐 Restored at: {restored_at}
💾 Contents restored: workspace, config, credentials, history, cron...

[Channel reconnect instructions in user's language]

未来:MyClaw 云备份

HTTP API 的设计与未来的 MyClaw 云备份服务兼容。服务可用后,将本地服务器 URL 替换为 MyClaw API 端点即可——上传/下载/恢复流程保持不变。

评论

支持 Markdown