名称: clawdbot-update-plus
描述: 为 Clawdbot 提供完整备份、更新与恢复功能——涵盖配置、工作区和技能,并支持自动回滚
版本: 2.1.1
元数据: {"clawdbot":{"emoji":"🔄","requires":{"bins":["git","jq","rsync"],"commands":["clawdbot"]}}}
一个为您的整个 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
创建符号链接以便全局使用命令:
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}
]
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
# 安装
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 天 | 自动清理 |
bin/
├── clawdbot-update-plus # 主入口点
└── lib/
├── utils.sh # 日志记录、辅助函数
├── config.sh # 配置管理
├── backup.sh # 备份功能
├── restore.sh # 恢复功能
├── update.sh # 更新功能
├── notify.sh # 通知功能
└── cron.sh # Cron 任务管理
--no-backup 标志被忽略的问题backup_paths 用于完整环境备份skills_dirs)check、diff-backups、install-cron 命令由 hopyky 创建
MIT