2026年3月2日
如何备份 OpenClaw 个人数据:从零到 GitHub 自动化的完整方案
发布时间: 2026-03-02 分类: 工具使用 阅读时间: 8 分钟
发布时间: 2026-03-02
分类: 工具使用
阅读时间: 8 分钟
为什么要备份 OpenClaw 数据?
OpenClaw 是一个强大的 AI 助手平台,它存储了大量个人数据:
- 记忆文件:
MEMORY.md、AGENTS.md等 - 身份信息: AI 助手的”灵魂”和配置
- 认证凭证: GitHub Token、API Keys 等
- 会话历史: 对话记录和状态
- 通道状态: WhatsApp、Feishu 等登录信息
这些数据一旦丢失,需要重新配置所有连接,恢复成本很高。因此,定期备份是必需的。
OpenClaw 的数据结构
首先,让我们了解 OpenClaw 的数据存储位置:
~/.openclaw/ # OpenClaw State Directory
├── openclaw.json # Gateway 配置
├── workspace/ # 个人工作空间
│ ├── MEMORY.md # 长期记忆
│ ├── AGENTS.md # 行为准则
│ ├── SOUL.md # 灵魂文件
│ └── skills/ # 技能集合
├── credentials/ # 认证凭证(敏感!)
├── agents/ # Agent 配置和会话
├── feishu/ # Feishu 通道状态
├── devices/ # 设备配对
└── extensions/ # 插件
└── qqbot/ # 示例:QQ Bot 插件
└── node_modules/ # npm 依赖(1.4GB!)
关键发现: extensions/node_modules/ 目录通常超过 1GB,但这些都是可重新安装的依赖,不需要备份。
备份方案设计
核心思路
- 排除冗余: 不备份
node_modules,可通过npm install恢复 - 隔离备份: 不在生产目录中混入 Git 仓库,避免冲突
- 自动化: 使用 cron 定时任务,自动同步到 GitHub
- 安全存储: GitHub 私有仓库,保护敏感数据
完整实施步骤
第一步:创建 Git 仓库
不要在 ~/.openclaw/ 中初始化 Git! 原因:
- Git 的
.git目录会混入 OpenClaw 的运行时文件 - OpenClaw 可能修改或删除
.git,导致版本控制混乱 - 生产目录应该保持”干净”,Git 仓库应该独立
正确做法:在临时在目录创建 Git 仓库
# 创建备份目录
mkdir -p /tmp/openclaw-backup
cd /tmp/openclaw-backup
# 初始化 Git 仓库
git init
git config user.email "your-email@example.com"
git config user.name "Your Name"
第二步:创建 .gitignore
这是最关键的一步!.gitignore 决定了什么文件会被排除:
# OpenClaw Backup - .gitignore
# ============================
# 排除 extensions 目录(包含大量 node_modules)
extensions/
# 排除所有 node_modules
**/node_modules/
# 排除 package-lock.json 和 yarn.lock
**/package-lock.json
**/yarn.lock
# 排除日志文件
logs/
*.log
# 排除临时文件
*.tmp
*.temp
*.swp
.cache/
tmp/
# 排除编译产物
dist/
build/
# 排除系统文件
.DS_Store
Thumbs.db
效果: 备份大小从 1.4GB 降到 2.6MB(减少 99.8%!)
第三步:使用 rsync 同步文件
为什么不直接用 cp?因为 rsync 更强大:
rsync -av --delete --exclude="extensions" \
~/.openclaw/ \
/tmp/openclaw-backup/
参数说明:
-a:归档模式,保持权限、时间戳等-v:详细输出,显示同步的文件--delete:删除备份中不存在于源的文件(保持同步)--exclude="extensions":排除 extensions 目录
第四步:提交到 Git
cd /tmp/openclaw-backup
# 添加所有文件
git add -A
# 提交
git commit -m "OpenClaw 备份 - $(date '+%Y-%m-%d %H:%M:%S')"
第五步:关联 GitHub 仓库
创建 GitHub 私有仓库(必须私有!因为包含凭证)
# 添加远程仓库
git remote add origin https://github.com/username/openclaw-backup.git
使用 Personal Access Token(推荐):
- GitHub 设置 → Developer settings → Personal access tokens
- 创建 token,权限选择
repo(完全访问) - 在 URL 中使用包含 token 的地址:
git remote set-url origin \
https://ghp_YOUR_TOKEN@github.com/username/openclaw-backup.git
推送:
git push -u origin master
自动化:设置定时备份
使用 OpenClaw 的 cron 功能,每天自动备份两次。
创建备份脚本
将以下步骤封装到脚本中:
#!/bin/bash
# OpenClaw 自动备份脚本
SOURCE_DIR="~/.openclaw"
BACKUP_DIR="/tmp/openclaw-backup"
REMOTE_REPO="https://ghp_YOUR_TOKEN@github.com/username/repo.git"
# 同步文件
rsync -av --delete --exclude="extensions" "$SOURCE_DIR/" "$BACKUP_DIR/"
# 提交到 Git
cd "$BACKUP_DIR"
git add -A
git commit -m "自动备份 $(date '+%Y-%m-%d %H:%M:%S')"
# 推送到 GitHub
git push
保存为: ~/.openclaw/workspace/backup.sh
设置权限: chmod +x ~/.openclaw/workspace/backup.sh
设置 OpenClaw Cron 任务
OpenClaw 提供了强大的 cron 命令:
# 凌晨 0 点备份
openclaw cron add \
--name "OpenClaw 备份-凌晨" \
--cron "0 0 * * *" \
--message "执行 ~/.openclaw/workspace/backup.sh" \
--session isolated
# 中午 12 点备份
openclaw cron add \
--name "OpenClaw 备份-中午" \
--cron "0 12 * * *" \
--message "执行 ~/.openclaw/workspace/backup.sh" \
--session isolated
验证:
openclaw cron list
输出:
``` ID Name Schedule Next Status b023627e-… OpenClaw 备份-凌晨 cron 0 0 * * * in 10h idle b0c11dce-… OpenClaw 备份-中午 cron 0 12 * * * in 22h idle ```
数据验证
检查备份大小
cd /tmp/openclaw-backup
du -sh .
预期结果: 约 2-5MB(取决于个人数据量)
包含内容:
openclaw.json- Gateway 配置workspace/- 长期记忆、技能、脚本credentials/- 认证凭证agents/- Agent 状态feishu/- Feishu 通道状态
验证 Git 提交
cd /tmp/openclaw-backup
git log --oneline -5
输出示例:
6a7e410 - OpenClaw 备份 - 2026-03-02 13:10:03
...
验证 GitHub 仓库
访问 GitHub 仓库,确认:
- 仓库是私有的(至关重要!)
- 包含
.gitignore文件 - 没有
node_modules目录 - 所有重要文件都在
恢复步骤(如果需要)
在目标机器上:
# 拉取备份仓库
git clone https://github.com/username/openclaw-backup.git
# 安装 OpenClaw
npm install -g @openclaw/openclaw
# 恢复 extensions
cd ~/.openclaw/extensions/qqbot
npm install
# 复制备份到目标目录
rsync -av ~/openclaw-backup/ ~/.openclaw/
# 运行 Doctor
openclaw doctor
# 启动 Gateway
openclaw gateway start
安全最佳实践
1. Token 管理
- ✅ 使用 Personal Access Token,不要用密码
- ✅ 定期轮换 Token(每 3-6 个月)
- ✅ 如果 Token 泄露,立即撤销并重建
- ✅ 在 URL 中使用 token 时,注意不要泄露到日志或公开内容
2. 仓库安全
- ✅ 必须使用私有仓库(包含 API keys、OAuth tokens)
- ✅ 定期检查仓库访问权限
- ✅ 不要在公共仓库中提交凭证
3. 备份策略
- ✅ 每日备份两次(0:00 和 12:00)
- ✅ 验证备份成功(检查 cron 运行日志)
- ✅ 定期从 GitHub 拉取并验证恢复流程
4. 监控和维护
# 查看备份日志
cat /tmp/openclaw-backup.log
# 查看 cron 任务状态
openclaw cron list
# 手动触发备份
/root/.openclaw/workspace/backup.sh
常见问题
Q1: 为什么不直接在生产目录初始化 Git?
A: 因为 OpenClaw 运行时会动态修改文件,Git 会追踪这些变化,导致版本控制混乱。使用独立的备份目录更安全、可控。
Q2: 为什么备份只有 2.6MB,但 OpenClaw 目录有 1.4GB?
A: 因为排除了 extensions/node_modules/。这些依赖可以通过 npm install 重新安装,不需要备份。
Q3: 如何修改备份频率?
A: 使用 openclaw cron 命令:
# 删除旧任务
openclaw cron rm <任务ID>
# 创建新任务(例如每 6 小时)
openclaw cron add \
--cron "0 */6 * * *" \
--name "OpenClaw 备份-每6小时"
Q4: 备份失败了怎么办?
A: 检查以下几点:
- GitHub Token 是否过期?
- 网络连接是否正常?
- 磁盘空间是否充足?
- 查看备份日志:
/tmp/openclaw-backup.log
总结
通过本文档,你已经学会了:
✅ OpenClaw 数据结构分析
✅ Git 仓库创建和配置
✅ 智能排除策略(.gitignore)
✅ rsync 文件同步
✅ GitHub 私有仓库设置
✅ OpenClaw Cron 自动化
✅ 安全最佳实践
✅ 恢复流程
从手动备份到自动化定时同步,你的 OpenClaw 数据现在安全了!
相关资源: