openclaw-reliable-backup
v1.0.0提供 OpenClaw 自动化每日备份、变更前快照、邮件发送、备份管理及恢复指导,确保数据高可靠性和安全。
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
name: openclaw-reliable-backup description: | 执行 OpenClaw 的自动化、高可靠性备份与安全管理。功能包括:每日定时完整备份、文件修改前自动创建快照、通过邮件发送备份、管理备份生命周期、提供紧急恢复指南。当用户提到"备份"、"回滚"、"快照"、"恢复系统"、"修改配置前备份"、"清理旧备份"、"查看备份状态"、"设置备份"时触发。 metadata: openclaw: emoji: "💾" requires: tools: ["file_operations", "command_execution"]
OpenClaw 高可靠备份与安全管理技能
核心指令
建立一套高可靠的自动化备份与恢复流程,确保在任何操作下 OpenClaw 的核心状态均可追溯与回滚。
首次使用设置流程
当用户首次提及"备份"、"设置备份"或相关指令时,执行以下设置流程:
-
检查备份根目录配置:
- 检查环境变量
BACKUP_ROOT是否已设置 - 如未设置,询问用户:"请设置备份文件的存储根目录(例如:~/openclaw_backups):"
- 接收用户输入的路径,验证有效性,并创建必要的目录结构
- 检查环境变量
-
检查邮件管理能力:
- 尝试调用 OpenClaw 的邮件发送功能
- 如调用失败,进入邮件技能引导流程
-
邮件技能引导流程: a. 向用户说明:"备份技能需要邮件通知功能来发送备份文件。当前未检测到可用的邮件管理能力。" b. 询问用户:"是否现在安装并配置邮件管理技能?(回复'是'以继续,或'否'跳过邮件功能)"
c. 如果用户回复"是":
- 搜索可用的邮件相关技能:"正在搜索可用的邮件管理技能..."
- 显示搜索结果列表
- 引导用户:"请输入要安装的技能ID(例如:imap-smtp-email),或回复'取消'跳过:"
d. 如果用户提供技能ID: - 执行安装:
clawhub install [技能ID]- 安装成功后,引导配置:"✅ 邮件技能安装成功!请按照以下步骤配置:" - 提供配置指南:1. 运行配置命令:openclaw skill config [技能ID] 2. 输入您的邮箱服务器信息: ▪ SMTP 服务器地址 ▪ 端口(通常 587 或 465) ▪ 邮箱账号 ▪ 密码或应用专用密码 3. 测试发送:openclaw email test e. 等待用户配置完成后,继续引导本技能配置d. 如果用户回复"否"或"跳过":
- 说明:"邮件通知功能已跳过。备份文件将仅保存在本地目录。"
- 继续完成本技能的其他配置
-
完成本技能配置:
-
设置定时任务:"是否设置每日自动备份?(默认:每天 8:00)"
-
配置备份保留策略:
本地备份保留天数(默认:3天): 邮箱备份保留天数(默认:7天,需邮件功能):
-
生成配置文件并确认完成
-
核心功能
1. 执行每日完整备份
触发时机:每日上午 8:00 自动执行,或用户手动触发"执行每日备份"、"创建完整快照"。
执行流程:
-
前置检查:
- 检查网络连接
- 检查邮件发送能力(如已配置)
- 检查磁盘空间
- 验证
BACKUP_ROOT目录可访问
-
备份执行: a. 创建临时副本目录:
$BACKUP_ROOT/tmp/backup_$(date +%Y%m%d_%H%M%S)b. 复制所有核心文件到临时目录:~/.openclaw/openclaw.json~/.openclaw/credentials/~/.openclaw/agents/~/.openclaw/identity/~/.openclaw/soul/~/.openclaw/workspace/~/.openclaw/telegram/~/.openclaw/cron/~/.openclaw/tools/~/.openclaw/system/
c. 创建压缩包:
openclaw_full_backup_$(date +%Y%m%d_%H%M%S).zipd. 生成校验文件:sha256sum 压缩包 > 压缩包.sha256 -
邮件通知(如配置了邮件功能): a. 尝试发送邮件附件 b. 邮件主题:
[OpenClaw 备份] $(date +%Y-%m-%d) 完整备份c. 邮件正文包含备份摘要和恢复指南 -
本地日志记录:
- 记录到:
$BACKUP_ROOT/logs/backup.log - 格式:
[时间] [结果] 操作详情 - 示例:
[20250217_080005] [SUCCESS] 每日备份完成,文件:openclaw_full_backup_20250217_080005.zip,大小:150MB[20250217_080010] [FAILED] 邮件发送失败:网络连接错误
- 记录到:
2. 变更触发式精准备份
触发条件:检测到用户要修改 OpenClaw 核心文件时自动触发。
执行流程:
- 询问确认:"检测到您要修改核心文件,将在执行前自动创建备份。确认继续吗?"
- 获取变更信息:"请简要描述要修改的文件和目的:"
- 执行双重备份:
a. 完整备份:执行上述每日备份流程
b. 专项备份:复制要修改的文件为
[文件名]_before_change_$(date +%H%M%S).bak - 邮件通知:
- 主题:
【变更触发】备份 - $(date +%Y-%m-%d_%H:%M) - 正文包含变更摘要、专项恢复指引、紧急恢复指南
- 主题:
3. 备份生命周期管理
本地清理(3天策略):
触发:用户说"清理本地备份" 流程:
- 检查超过3天的备份文件
- 显示待删除文件列表
- 询问:"确认删除以上文件?(回复'确认'删除)"
- 收到确认后执行删除
- 记录日志
邮箱清理(7天策略,需邮件功能):
触发:用户说"清理邮箱备份" 流程:
- 搜索超过7天的备份邮件
- 显示邮件列表
- 询问:"确认移动以上邮件到回收站?"
- 收到确认后执行
- 记录日志
4. 查询与恢复
查询状态:
- 触发:"备份状态"、"查看备份日志"
- 显示最近日志和备份文件列表
恢复指南(自动附加到每封邮件):
⚠️ 紧急恢复手册
- 查看日志:cat $BACKUP_ROOT/logs/backup.log | tail -5
- 关闭程序:openclaw gateway stop
- 下载验证:sha256sum -c 备份文件.sha256
- 解压恢复:unzip 备份文件.zip -d ~
- 重新启动:openclaw gateway start
输出格式标准
成功响应格式
✅ 备份操作完成 • 操作:[操作类型]
• 文件:[文件名]
• 大小:[文件大小]
• 时间:[完成时间]
• 状态:已记录到日志
[如发送邮件] - 已发送至您的邮箱
失败响应格式
❌ 备份操作失败 • 错误:[具体错误]
• 原因:[可能原因]
• 建议:[修复建议]
• 状态:已记录到日志
引导交互格式
🔧 配置引导:[当前步骤] [说明文字] 请回复:[选项1] 或 [选项2] 或 [其他指令]
配置与状态管理
环境变量
BACKUP_ROOT:备份根目录(必须)BACKUP_RETENTION_DAYS:本地保留天数(默认:3)EMAIL_RETENTION_DAYS:邮箱保留天数(默认:7,需邮件功能)
配置文件位置
- 主配置:
$BACKUP_ROOT/.backup_config - 日志文件:
$BACKUP_ROOT/logs/backup.log - 快照目录:
$BACKUP_ROOT/snapshots/
错误处理与恢复
常见错误处理
- 目录不存在:自动创建并继续
- 权限不足:提示用户检查权限
- 磁盘空间不足:建议清理旧备份
- 邮件发送失败:仅保存本地,记录错误
- 网络连接失败:重试一次后记录错误
技能自身恢复
如本技能配置损坏:
- 删除
$BACKUP_ROOT/.backup_config - 重新触发设置流程
- 从最近的备份中恢复配置
安全与隐私
安全措施
-
敏感信息保护:
- 备份包含
credentials/目录,请妥善保管备份文件 - 建议对备份存储位置设置适当权限
- 备份包含
-
操作确认:
- 所有删除操作需用户确认
- 所有关键操作记录详细日志
-
完整性验证:
- 每个备份文件附带校验文件
- 恢复前必须验证完整性
隐私声明
- 本技能不收集用户数据
- 所有备份文件存储在用户指定的本地目录
- 邮件发送需用户明确配置邮件服务器
- 无远程数据传输(除非用户配置了邮件发送)
更新与维护
技能更新
当本技能更新时:
- 备份当前配置
- 应用更新
- 验证配置兼容性
- 如不兼容,提供迁移指南
用户数据迁移
如需要迁移备份数据:
- 导出当前配置
- 复制备份文件到新位置
- 更新
BACKUP_ROOT设置 - 验证可访问性
重要提示:首次使用后,建议执行一次测试备份并验证恢复流程,确保备份系统按预期工作。
Files
2 totalComments
Loading comments…
