使用 4 个 agent 部署一套备份与灾难恢复系统。在以下情况下使用该技能: 1. 用户希望搭建自动化的备份基础设施; 2. 用户正在配置……
备份和灾难恢复设置是一项面向实际任务的技能,主要用于部署 4 个代理: 调度器、 主备份、 离场备用、 并恢复测试器;Roles.;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
部署 4 个代理:scheduler(调度器)、primary backup(主备份)、offsite secondary(异地副本)和 restore tester(恢复测试器)。
| 角色 | 主机名 | 技能 | 用途 |
|---|---|---|---|
| scheduler | |
pilot-cron, pilot-task-chain, pilot-audit-log, pilot-slack-bridge | 编排备份生命周期 |
| primary | |
pilot-backup, pilot-archive, pilot-compress, pilot-share | 创建并传输备份 |
| secondary | |
pilot-sync, pilot-verify, pilot-health, pilot-share | 异地副本,校验数据完整性 |
| tester | |
pilot-backup, pilot-verify, pilot-health, pilot-alert | 执行恢复测试,失败时发出告警 |
步骤 1: 向用户询问所选角色及前缀(prefix)。
步骤 2: 安装对应技能:
# scheduler: clawhub install pilot-cron pilot-task-chain pilot-audit-log pilot-slack-bridge # primary: clawhub install pilot-backup pilot-archive pilot-compress pilot-share # secondary: clawhub install pilot-sync pilot-verify pilot-health pilot-share # tester: clawhub install pilot-backup pilot-verify pilot-health pilot-alert
步骤 3: 设置主机名,并将配置清单写入 ~/.pilot/setups/backup-disaster-recovery.json。
步骤 4: 沿链路完成握手:scheduler ↔ primary ↔ secondary ↔ tester ↔ scheduler。
{
"setup": "backup-disaster-recovery", "role": "scheduler", "role_name": "Backup Scheduler",
"hostname": "-backup-sched",
"skills": {
"pilot-cron": "按周期(每小时、每日、每周)调度备份任务。",
"pilot-task-chain": "编排备份 → 同步 → 校验 → 报告全流程。",
"pilot-audit-log": "记录所有备份生命周期事件。",
"pilot-slack-bridge": "将备份报告及失败告警发送至 Slack。"
},
"data_flows": [
{ "direction": "send", "peer": "-backup-primary", "port": 1002, "topic": "backup-start", "description": "触发备份任务" },
{ "direction": "receive", "peer": "-restore-tester", "port": 1002, "topic": "restore-result", "description": "恢复测试结果" }
],
"handshakes_needed": ["-backup-primary", "-backup-secondary", "-restore-tester"]
}
{
"setup": "backup-disaster-recovery", "role": "primary", "role_name": "Primary Backup",
"hostname": "-backup-primary",
"skills": {
"pilot-backup": "创建数据库及文件系统备份。",
"pilot-archive": "归档备份(含元数据与保留策略)。",
"pilot-compress": "在传输前压缩归档包。",
"pilot-share": "将压缩后的归档包推送至 secondary。"
},
"data_flows": [
{ "direction": "receive", "peer": "-backup-sched", "port": 1002, "topic": "backup-start", "description": "接收备份触发指令" },
{ "direction": "send", "peer": "-backup-secondary", "port": 1001, "topic": "sync-backup", "description": "压缩后的归档包" }
],
"handshakes_needed": ["-backup-sched", "-backup-secondary"]
}
{
"setup": "backup-disaster-recovery", "role": "secondary", "role_name": "Offsite Replica",
"hostname": "-backup-secondary",
"skills": {
"pilot-sync": "从 primary 接收并同步备份归档包。",
"pilot-verify": "校验接收到的备份归档包完整性校验和。",
"pilot-health": "上报异地存储健康状态与容量信息。",
"pilot-share": "按需向 restore tester 提供备份数据。"
},
"data_flows": [
{ "direction": "receive", "peer": "-backup-primary", "port": 1001, "topic": "sync-backup", "description": "压缩后的归档包" },
{ "direction": "send", "peer": "-restore-tester", "port": 1001, "topic": "restore-data", "description": "用于测试的备份数据" },
{ "direction": "send", "peer": "-backup-sched", "port": 1002, "topic": "sync-confirmed", "description": "同步完成确认" }
],
"handshakes_needed": ["-backup-primary", "-backup-sched", "-restore-tester"]
}
{
"setup": "backup-disaster-recovery", "role": "tester", "role_name": "Restore Tester",
"hostname": "-restore-tester",
"skills": {
"pilot-backup": "在隔离环境中执行恢复测试。",
"pilot-verify": "验证恢复后数据完整性(如行数、校验和)。",
"pilot-health": "监控恢复测试环境健康状态。",
"pilot-alert": "在恢复失败或数据损坏时发出告警。"
},
"data_flows": [
{ "direction": "receive", "peer": "-backup-secondary", "port": 1001, "topic": "restore-data", "description": "待测试的备份数据" },
{ "direction": "send", "peer": "-backup-sched", "port": 1002, "topic": "restore-result", "description": "测试结果" }
],
"handshakes_needed": ["-backup-secondary", "-backup-sched"]
}
scheduler → primary :备份触发指令(端口 1002)primary → secondary :压缩后的归档包(端口 1001)secondary → tester :用于测试的备份数据(端口 1001)tester → scheduler :恢复测试结果(端口 1002)# 在 scheduler 上执行: pilotctl --json publish-backup-primary backup-start '{"job_id":"BK-315","type":"full","targets":["postgres","redis"]}' # 在 primary 上执行: pilotctl --json send-file -backup-secondary ./backups/BK-315-postgres.tar.gz pilotctl --json publish -backup-secondary sync-backup '{"job_id":"BK-315","size_mb":1240}' # 在 tester 上执行: pilotctl --json publish -backup-sched restore-result '{"job_id":"BK-315","restore":"success","tables_verified":42}'
需要 pilot-protocol 技能、pilotctl 可执行文件、clawhub 可执行文件,以及一个正在运行的守护进程(daemon)。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习