Emergency Rescue Kit

{"answer":"应对开发事故。适用于强制推送到主分支、Git 凭证泄露、磁盘空间耗尽、误杀进程、数据库损坏、部署失败、SSH 锁定、变基导致提交丢失,或任何需要冷静按步恢复的“糟糕”时刻。"}

安装

概览

什么是Emergency Rescue Kit

Emergency Rescue Kit 是一款专为开发者设计的应急恢复工具集,旨在应对开发过程中可能出现的各类严重事故。无论是因为强制推送覆盖了主分支历史、Git 凭证意外泄露、磁盘空间耗尽导致系统瘫痪,还是数据库损坏、部署失败、SSH 锁定等“灾难性”时刻,该工具都提供了清晰、可执行的恢复流程。其核心设计哲学是‘冷静按步恢复’——通过标准化的诊断 → 修复 → 验证三步法,帮助开发者在高压环境下快速定位问题并实施非破坏性或可控的修复措施。所有命令默认采用非破坏性操作,仅在必要时才标记为破坏性步骤,最大限度降低二次风险。 该工具覆盖的场景极为广泛,从版本控制灾难(如 rebase 导致提交丢失、合并冲突无法解决)到基础设施故障(如容器启动失败、SSL 证书过期),再到权限与访问问题(如误删文件、sudo 权限丢失)和网络连接中断等。它不仅提供具体命令,更强调系统性思维:先诊断根本原因,再选择最合适的修复路径,最后通过验证确保问题真正解决。这种结构化的方法尤其适合在时间紧迫、情绪紧张的事故现场使用,避免盲目操作引发更大混乱。 Emergency Rescue Kit 特别注重实用性和即时可用性。它不提供复杂的安装或配置教程,而是直接给出可直接复制粘贴的命令和操作步骤。例如,在面对 Git 历史被覆盖时,它会指导你使用 `git reflog` 找回丢失的提交哈希,并用 `–force-with-lease` 安全地恢复远程分支;当磁盘爆满时,则推荐先用 `docker system prune -a` 清理 Docker 缓存这一常见“元凶”。每个场景都配有预防建议,如设置 pre-commit hook 防止 secrets 提交、使用事务包裹危险 SQL 语句等,帮助用户从源头减少事故发生概率。

核心功能特点

  1. 提供标准化三步恢复流程:诊断 → 修复 → 验证,确保操作有序且结果可确认
  2. 覆盖 Git 灾难、凭证泄露、磁盘爆满、进程僵死、数据库损坏、部署回滚、SSH 锁定等 10+ 种高频紧急场景
  3. 所有命令默认非破坏性,危险操作明确标注,降低二次事故风险
  4. 包含通用诊断脚本,一键检查系统健康状态,快速定位问题根源
  5. 集成预防性建议,如 pre-commit hook、事务化 SQL 操作、Docker 清理策略等

适用场景

Emergency Rescue Kit 最典型的应用场景是开发者遭遇突发性系统或代码失控时的紧急干预。例如,团队中有人误用了 `git push –force` 覆盖了主分支的历史记录,导致其他成员本地仓库与远程严重不一致。此时,无需慌乱重写历史,只需按照工具指引使用 `git reflog show origin/main` 查找旧提交哈希,再用 `git push origin :main –force-with-lease` 安全恢复。另一个常见场景是 `.env` 文件或 API 密钥被意外推送到公开仓库,工具会立即指导你执行两步关键操作:首先立刻在对应平台(如 AWS IAM、GitHub Token 管理页)吊销泄露的凭证,防止被恶意利用;随后使用 `git filter-repo` 彻底清除历史中的敏感信息并强制推送,同时添加至 `.gitignore` 防止复发。 在生产环境运维中,该工具同样表现出色。当服务器磁盘空间被日志文件撑爆、构建服务崩溃时,它能快速识别 Docker 镜像缓存或 npm/pip 包缓存占用了大量空间,并提供 `truncate -s 0` 这类即时释放空间的命令而不中断服务。对于容器化部署失败,如 Kubernetes Pod 因健康检查连续失败而反复重启,工具会引导你通过 `kubectl describe pod` 查看事件日志,临时禁用健康检查获取真实错误信息,或调整内存限制参数解决问题。此外,面对 SSL 证书过期导致网站不可访问的情况,它不仅能给出 Let’s Encrypt 自动续期命令,还能设置定时任务监控证书有效期并发送预警邮件,实现主动防御。 对于权限与访问类事故,如误执行 `chmod -R 777 /` 导致系统关键目录权限错乱,或 SSH 因多次登录失败被 fail2ban 封锁 IP,工具提供了明确的修复路径。前者可通过重建标准权限结构(目录 755、文件 644、脚本 755)快速恢复;后者则强调利用云平台提供的控制台接入方式(如 AWS Session Manager、GCP 浏览器 SSH)绕过封锁,再通过 `fail2ban-client unbanip` 解除封禁。这些场景的共同特点是问题往往由单一操作失误引发,但影响范围广、恢复难度大,而 Emergency Rescue Kit 的结构化响应机制能有效缩短平均修复时间(MTTR),保障开发与生产环境的稳定性。