OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  clawdbot-update-plus:针对 Clawdbot 的高级备份、升级与恢复工具

clawdbot-update-plus:针对 Clawdbot 的高级备份、升级与恢复工具

 
  hardware ·  2026-02-18 21:30:19 · 3 次点击  · 0 条评论  

名称: clawdbot-update-plus
描述: 为 Clawdbot 提供完整备份、更新与恢复功能——涵盖配置、工作区和技能,并支持自动回滚
版本: 2.1.1
元数据: {"clawdbot":{"emoji":"🔄","requires":{"bins":["git","jq","rsync"],"commands":["clawdbot"]}}}


🔄 Clawdbot Update Plus

一个为您的整个 Clawdbot 环境提供的全面备份、更新和恢复工具。通过自动回滚、加密备份和云同步,保护您的配置、工作区和技能。

快速开始

# 检查可用更新
clawdbot-update-plus check

# 创建完整备份
clawdbot-update-plus backup

# 更新所有内容(更新前会先创建备份)
clawdbot-update-plus update

# 预览变更(不进行实际修改)
clawdbot-update-plus update --dry-run

# 从备份恢复
clawdbot-update-plus restore clawdbot-update-2026-01-25-12:00:00.tar.gz

功能特性

功能 描述
完整备份 备份整个环境(配置、工作区、技能)
自动备份 每次更新前自动创建备份
自动回滚 若更新失败,自动回滚到上一个提交
智能恢复 恢复全部内容或特定部分(配置、工作区)
多目录支持 分离生产/开发技能目录,支持独立更新设置
加密备份 可选的 GPG 加密
云同步 通过 rclone 上传备份到 Google Drive、S3、Dropbox
通知提醒 通过 WhatsApp、Telegram 或 Discord 接收通知
模块化架构 清晰、可维护的代码库

安装

# 通过 ClawdHub 安装
clawdhub install clawdbot-update-plus --dir ~/.clawdbot/skills

# 或手动克隆
git clone https://github.com/hopyky/clawdbot-update-plus.git ~/.clawdbot/skills/clawdbot-update-plus

添加到 PATH

创建符号链接以便全局使用命令:

mkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc  # 或 ~/.bashrc
source ~/.zshrc
ln -sf ~/.clawdbot/skills/clawdbot-update-plus/bin/clawdbot-update-plus ~/bin/clawdbot-update-plus

依赖项

依赖项 是否必需 用途
git 从仓库更新技能
jq 解析 JSON 配置
rsync 高效文件复制
rclone 云存储同步
gpg 备份加密

配置

创建配置文件 ~/.clawdbot/clawdbot-update.json

{
  "backup_dir": "~/.clawdbot/backups",
  "backup_before_update": true,
  "backup_count": 5,
  "backup_paths": [
    {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media", "*.lock"]},
    {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]}
  ],
  "skills_dirs": [
    {"path": "~/.clawdbot/skills", "label": "prod", "update": true},
    {"path": "~/clawd/skills", "label": "dev", "update": false}
  ],
  "remote_storage": {
    "enabled": false,
    "rclone_remote": "gdrive:",
    "path": "clawdbot-backups"
  },
  "encryption": {
    "enabled": false,
    "gpg_recipient": "your-email@example.com"
  },
  "notifications": {
    "enabled": false,
    "target": "+1234567890",
    "on_success": true,
    "on_error": true
  }
}

备份路径

通过 backup_paths 配置需要备份的内容:

选项 描述
path 要备份的目录(支持 ~
label 在日志和恢复操作中显示的名称
exclude 要排除的文件/文件夹

推荐设置

"backup_paths": [
  {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media"]},
  {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]}
]

技能更新

通过 skills_dirs 配置需要更新的技能目录:

选项 描述
path 技能目录路径
label 在日志中显示的名称
update 是否运行 git pull (true/false)

推荐设置

"skills_dirs": [
  {"path": "~/.clawdbot/skills", "label": "prod", "update": true},
  {"path": "~/clawd/skills", "label": "dev", "update": false}
]
  • 生产环境:自动从 ClawdHub/GitHub 更新
  • 开发环境:仅手动更新(保护您的工作内容)

命令

backup — 创建完整备份

clawdbot-update-plus backup

list-backups — 列出可用备份

clawdbot-update-plus list-backups

update — 更新所有内容

# 标准更新(包含自动备份)
clawdbot-update-plus update

# 仅预览变更
clawdbot-update-plus update --dry-run

# 跳过备份
clawdbot-update-plus update --no-backup

# 即使备份失败也强制继续
clawdbot-update-plus update --force

restore — 从备份恢复

# 恢复全部内容
clawdbot-update-plus restore backup.tar.gz

# 仅恢复配置
clawdbot-update-plus restore backup.tar.gz config

# 仅恢复工作区
clawdbot-update-plus restore backup.tar.gz workspace

# 强制恢复(无需确认)
clawdbot-update-plus restore backup.tar.gz --force

check — 检查更新

clawdbot-update-plus check

install-cron — 自动更新

# 每天凌晨 2 点自动更新
clawdbot-update-plus install-cron

# 自定义计划
clawdbot-update-plus install-cron "0 3 * * 0"  # 每周日凌晨 3 点

# 移除计划任务
clawdbot-update-plus uninstall-cron

通知提醒

在更新完成或失败时接收通知:

"notifications": {
  "enabled": true,
  "target": "+1234567890",
  "on_success": true,
  "on_error": true
}

目标格式决定了通知渠道:
- +1234567890 → WhatsApp
- @username → Telegram
- channel:123 → Discord

云存储

设置 rclone

# 安装
brew install rclone  # macOS
curl https://rclone.org/install.sh | sudo bash  # Linux

# 配置
rclone config

在配置中启用

"remote_storage": {
  "enabled": true,
  "rclone_remote": "gdrive:",
  "path": "clawdbot-backups"
}

加密备份

"encryption": {
  "enabled": true,
  "gpg_recipient": "your-email@example.com"
}

日志

所有操作都会记录到 ~/.clawdbot/backups/update.log

[2026-01-25 20:22:48] === Update started 2026-01-25 20:22:48 ===
[2026-01-25 20:23:39] Creating backup...
[2026-01-25 20:23:39] Backup created: clawdbot-update-2026-01-25-20:22:48.tar.gz (625M)
[2026-01-25 20:23:39] Clawdbot current version: 2026.1.22
[2026-01-25 20:23:41] Starting skills update
[2026-01-25 20:23:41] === Update completed 2026-01-25 20:23:41 ===
[2026-01-25 20:23:43] Notification sent to +1234567890 via whatsapp

日志保留策略:超过 30 天的日志会自动删除。

保留策略

类型 保留规则 配置项
备份(本地) 保留最近 N 个备份 backup_count: 5
备份(远程) 保留最近 N 个备份 与本地相同
日志 30 天 自动清理

架构 (v2.0)

bin/
├── clawdbot-update-plus     # 主入口点
└── lib/
    ├── utils.sh             # 日志记录、辅助函数
    ├── config.sh            # 配置管理
    ├── backup.sh            # 备份功能
    ├── restore.sh           # 恢复功能
    ├── update.sh            # 更新功能
    ├── notify.sh            # 通知功能
    └── cron.sh              # Cron 任务管理

更新日志

v2.0.0

  • 完全重写架构
  • 模块化设计(7 个独立模块)
  • 更清晰的代码库(每个模块约 150 行,而非 1000+ 行的单体结构)
  • 更好的错误处理
  • 改进的恢复功能,支持标签选择
  • 根据目标格式自动检测通知渠道
  • 修复了 --no-backup 标志被忽略的问题
  • 详细的文件日志记录,支持自动清理
  • 备份保留策略(本地 + 远程)

v1.7.0

  • 支持标签选择的智能恢复
  • 自动检测备份格式

v1.6.0

  • 新增 backup_paths 用于完整环境备份
  • 将备份逻辑与更新逻辑分离

v1.5.0

  • 支持多目录(skills_dirs

v1.4.0

  • 通过 Clawdbot 消息发送通知

v1.3.0

  • 新增 checkdiff-backupsinstall-cron 命令

作者

hopyky 创建

许可证

MIT

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor