Emergency Rescue Kit

🚨 开发者灾难现场冷静修复指南

开发者急救工具包:Git灾难、凭证泄露、磁盘爆满、进程失控、数据库故障、部署回滚等紧急场景的冷静诊断与分步修复方案

收藏
7.6k
安装
2.9k
版本
1.0.0
CLS 安全性认证2026-05-21
点击查看完整报告 >

使用说明

核心用法

Emergency Rescue Kit 是一套面向开发者的灾难恢复手册,覆盖最常见的"oh no"时刻。所有场景遵循诊断→修复→验证三段式流程,命令默认为非破坏性,危险操作明确标注⚠️。

覆盖场景矩阵

| 类别 | 典型危机 | 关键恢复手段 |
|:---|:---|:---|
| **Git灾难** | force-push覆盖历史、rebase丢失提交、分支误操作、仓库损坏 | `git reflog`回溯、`git filter-repo`清洗历史、强制推送保护 `--force-with-lease` |
| **凭证泄露** | API key/密码提交到公开仓库、.env文件泄露、CI日志暴露 | **立即撤销凭证**→清洗历史→通知协作者重新克隆 |
| **磁盘爆满** | 系统/容器无法写入、Docker吞噬空间、日志膨胀 | `docker system prune -a`、日志truncate(非删除)、包管理器缓存清理 |
| **进程失控** | 端口冲突、僵尸进程、OOM killer、内存耗尽 | `lsof`定位占用、`kill -9`阶梯式终止、内存限制配置 |
| **数据库危机** | 迁移失败、误删表/库、死锁、连接池耗尽 | 框架回滚命令、事务包裹、PgBouncer连接池、锁查询终止 |
| **部署紧急** | 故障上线需回滚、容器无法启动、SSL证书过期 | git revert/Kubernetes rollback/ECS revision切换、certbot续期 |
| **访问封锁** | SSH锁定、sudo权限丢失 | 云厂商控制台逃生舱(Session Manager/串口)、单用户模式修复 |

显著优点

1. 时效性优先的安全设计 — 凭证泄露场景明确将"撤销密钥"置于清洗历史之前,对抗自动化爬虫的分钟级响应窗口
2. reflog为中心的Git恢复哲学 — 将git reflog定位为"30天内的万能撤销按钮",降低心理门槛

3. 云原生逃生路径 — 每个访问封锁场景都列出AWS Session Manager、GCP浏览器SSH、Azure串口控制台等无SSH恢复通道

4. 破坏性操作的梯度防护--force-with-lease替代裸--force、truncate替代删除、事务包裹DDL操作

5. 一键诊断脚本 — 提供系统级健康检查的bash脚本,覆盖磁盘/内存/CPU/网络/服务状态,解决"不知道哪坏了"的茫然

潜在局限与风险

  • 权限依赖:部分修复需要root/管理员权限或云控制台访问,纯开发者权限下某些场景(如网络层故障)无法独立解决
  • 云厂商锁定:逃生舱口仅覆盖AWS/GCP/Azure/DigitalOcean,小众云或私有IDC需自行补充
  • Docker核选项的模糊性docker system prune -a --volumes会删除所有未使用卷,可能误删有状态数据,文档标注⚠️但无二次确认机制
  • 历史清洗的协作成本git filter-repo或BFG重写历史后,必须通知所有协作者重新克隆,文档强调但无自动化通知方案
  • 数据库恢复的假设前提:时间点恢复(PITR)依赖预配置的WAL归档/binary log,未配置则方案降级为"从备份恢复"或无解

适合人群

  • 全栈开发者:需要同时处理代码、基础设施、部署管道的独立开发者或小团队
  • SRE/平台工程师:需要标准化应急响应手册的运维团队
  • 技术Lead:需要向团队传授故障排查思维,而非仅提供命令复制
  • 云服务用户:深度使用Docker/Kubernetes/主流云平台的现代应用开发者

常规风险

  • 凭证泄露的窗口期悖论:即使立即撤销,泄露到撤销的几分钟内可能已被利用,文档建议撤销但未涵盖事后审计(如检查CloudTrail日志)
  • 强制推送的连锁覆盖--force-with-lease防止并发冲突,但若多人同时force-push仍可能丢失中间状态
  • Docker清理的生产误伤:开发机器安全的prune -a在生产环境可能删除必要镜像,文档区分场景但依赖读者判断力
  • sudo丢失的物理访问假设:单用户模式修复需要控制台/KVM访问,云实例通常无此能力,需依赖云厂商API

使用建议

将此skill视为保险单而非日常工具——安装后无需交互,但在force-push失误、凌晨3点证书过期、或误删生产表的时刻,按图索骥可节省数小时的恐慌搜索。建议团队共享此skill并演练关键场景(如凭证泄露响应流程)。

安全解读

Emergency Rescue Kit 综合评估

核心用法

本Skill为纯Markdown文档型应急指南,采用诊断→修复→验证的标准流程,覆盖开发运维中最常见的紧急场景:Git灾难恢复(force-push覆盖、rebase丢失、分支错误)、凭证泄露处理(API密钥、.env文件、CI日志)、磁盘空间紧急清理、进程管理(端口占用、僵死进程、OOM)、数据库故障(迁移失败、误删表、锁死)、部署回滚(Git/Docker/K8s)、SSH/权限锁定、网络故障及文件恢复等。所有命令均为示例性文档,无自动执行机制。

显著优点

1. 结构清晰统一:每个场景严格遵循诊断-修复-验证三步法,降低慌乱中误操作概率
2. 安全优先设计:破坏性操作均标注⚠️警告,推荐使用--force-with-lease替代--force等安全替代方案

3. 覆盖场景全面:从常见Git误操作到云厂商控制台逃生通道,涵盖开发者日常高频风险点

4. 实用技巧丰富:如git reflog恢复丢失提交、truncate替代删除日志、docker system prune快速释放空间等

5. 零依赖零风险:纯文档无外部依赖,无供应链攻击面

潜在局限性

1. 需手动执行:紧急场景下用户可能因慌乱跳过阅读直接复制命令,增加误操作风险
2. 环境特异性:部分命令(如systemctlapt)特定于Linux发行版,macOS/Windows需调整

3. 版本兼容性:工具版本差异可能导致命令行为不同(如较旧Git无--force-with-lease

4. T3来源可信度:社区开发者维护,非企业级持续维护保障

适合人群

  • 全栈开发者、DevOps工程师、运维人员
  • 需要快速应对生产事故的技术团队
  • Git进阶用户及系统管理员

常规风险

  • 用户误操作风险:文档中的rm -rfkill -9git push --force等命令若在未理解上下文时执行,可能导致数据永久丢失
  • 凭证泄露响应时效:文档强调"撤销凭证优先于清理历史",但用户可能因顺序错误导致泄露窗口延长
  • 数据库操作风险:部分恢复操作(如pg_terminate_backend)可能影响生产业务连续性

使用建议

建议将此Skill作为团队应急预案参考文档,平时熟悉结构而非紧急时首次查阅;关键操作前先在非生产环境验证;结合团队实际技术栈制作定制化速查表。

Emergency Rescue Kit 内容

手动下载zip · 12.4 kB
SKILL.mdtext/markdown
请选择文件