7.2 KiB
Recovery Checklist
这份文档的目标是让这台 macOS 机器在系统崩溃、整机重装或新机器迁移后, 尽可能快地恢复到可工作的开发状态。
当前覆盖范围
已经纳入 dotfiles 仓库管理的内容:
~/.zshrc.d/*.zsh的受管片段~/bin下的受管 wrappercodex默认走 Clash 的代理包装- 一部分 shell / Clash / kubectl 的窄脚本入口
还没有完全版本化,仍需单独备份的内容:
~/.ssh/~/.gnupg/~/.config/secrets/~/.kube/config~/.docker/config.json- macOS Keychain 中的 token、证书、登录态
- Clash 订阅凭据和未脱敏的 provider 配置
~/.zshrc里尚未迁移进dotfiles的旧配置- 浏览器数据、VS Code 扩展与个人设置
- OrbStack / Docker / 本地模型 / 数据目录
结论:
当前这套 dotfiles 能恢复“基础 shell 环境、代理入口、常用脚本入口”,
但还不能替代整机备份。
事前准备
每次大改环境前,确认以下内容有备份:
tar czf ~/Desktop/recovery-secrets-$(date +%Y%m%d).tgz \
~/.ssh \
~/.gnupg \
~/.config/secrets \
~/.kube/config \
~/.docker/config.json
另外导出或确认这些项目可恢复:
- Gitea 可访问:
http://192.168.1.83:33000/gao/dotfiles.git - 你常用的私有仓库地址和访问方式
- Clash 订阅来源或脱敏后的基础配置
- Keychain 里关键 token 是否有外部保存方案
系统重装前,先跑一遍:
./scripts/backup/check-private-assets.sh
如果要生成本机私有归档:
./scripts/backup/create-private-backup.sh
注意:这个归档会包含 SSH、GPG、kube、Docker、Clash 私有配置等敏感内容, 必须只放在受控位置。
恢复顺序
1. 系统初始化
完成 macOS 安装后,先做最小系统准备:
xcode-select --install
然后安装 Homebrew。
安装完成后,至少保证这些基础命令可用:
gitcurljqzsh
如果仓库已经可访问,建议在拉取 dotfiles 后立刻执行:
brew bundle --file ~/work/codes/tools/macos/dotfiles/Brewfile
仓库还提供一个锁定式版本快照:
config/homebrew/Brewfile.lock.json
用途是帮助你确认“当前机器当时装的是哪些版本”,但它不是 Homebrew 的 原生严格锁文件。
2. 拉取 dotfiles
mkdir -p ~/work/codes/tools/macos
git clone http://192.168.1.83:33000/gao/dotfiles.git ~/work/codes/tools/macos/dotfiles
cd ~/work/codes/tools/macos/dotfiles
如果当时局域网 Gitea 不可达,使用离线备份或其他远端镜像。
3. 接入 shell 与 wrapper
./install/doctor.sh || true
./install/link.sh
source ~/.zshrc
执行后应得到这些结果:
~/.zshrc含有dotfiles bootstrapblock~/.zshrc.d/*.zsh链接到仓库内的zsh/~/bin/codex和~/bin/codex-direct链接到仓库内的bin/
检查:
command -v codex
command -v codex-direct
bash ./install/doctor.sh
4. 恢复机密与本机状态
把这些内容恢复回 home 目录:
mkdir -p ~/.config/secrets
需要恢复或重新导入:
~/.ssh/~/.gnupg/~/.config/secrets/~/.kube/config~/.docker/config.json- Keychain 中的登录项、API token、证书
这些项目的标准清单已经记录在:
config/recovery/private-assets.tsv
如果你要继续使用本机特有变量,复制本地覆盖文件:
cp zsh/90-machine.local.example.zsh zsh/90-machine.local.zsh
然后把下面这类值写入 zsh/90-machine.local.zsh 或 ~/.config/secrets/*.zsh:
JAVA_HOMEANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN- 其他不应该进入 git 的 token 和内网地址
如果只是新机器初始化,先创建 secrets 骨架:
./scripts/secrets/bootstrap.sh
5. 恢复语言与开发运行时
这台机器当前依赖的运行时包括:
- Homebrew
- Oh My Zsh
- Miniforge / conda
nvmbunpnpmjenv- OpenJDK 21
- Flutter
建议顺序:
- 安装 Oh My Zsh
- 安装 Miniforge
- 安装
nvm并恢复 Node - 安装
bun - 安装
pnpm - 安装
jenv和 OpenJDK 21 - 恢复 Flutter 路径对应目录
恢复完成后检查:
zsh --version
node -v
pnpm -v
bun -v
java -version
python3 --version
6. 恢复 Clash 与 Codex 代理
当前 Codex 默认通过 Clash 的本地混合端口 7890 工作。
确保 ClashX 或等价客户端满足:
模式 = 规则混合代理端口 = 7890外部控制器 = 127.0.0.1:9090- OpenAI / ChatGPT 相关域名走同一个稳定节点
仓库里现在有两份公开配置:
config/clash/config.public.yamlconfig/clash/clashx.public.yaml
如果已经把 Clash 配置迁入 dotfiles/config/clash/,恢复后可直接重载:
./scripts/clash/reload.sh ~/.config/clash/clashx.yaml
仓库里现在已经有一个脱敏模板:
config/clash/clashx.public.yaml
恢复时有两种方式:
- 用它复制出本机工作副本,然后手动填回私有节点
server/password - 重新从订阅或私有备份恢复完整节点段,再覆盖本机 live config
检查代理与路由:
codex-proxy-status
./scripts/clash/check-openai-route.sh
7. 恢复容器与平台工具
按需恢复这些工具:
- OrbStack
- Docker CLI / buildx
kubectlghollamadisplayplacer
检查:
docker ps
kubectl version --client
gh --version
ollama --version
8. 恢复工作目录
拉取你常用的工作仓库,至少包括:
~/work/codes/tools/macos- 业务项目仓库
- 私有基础设施仓库
如果 shell alias、脚本或路径依赖这些目录,必须恢复到相同路径。
验收清单
恢复完成后,至少跑一遍:
source ~/.zshrc
command -v codex
command -v kubectl
command -v java
command -v pnpm
bash ~/work/codes/tools/macos/dotfiles/install/doctor.sh
bash ~/work/codes/tools/macos/dotfiles/scripts/shell/lint-zsh.sh
再确认这些真实场景:
codex启动正常codex不再直连外网,而是通过 Clashcodex-direct可用于临时绕过代理kubectlalias 仍然指向预期 wrapper- Java / Node / Python / Bun 路径正确
建议的后续完善
要把恢复能力继续提高,下一步建议做这些事:
- 把
~/.zshrc里仍然存在的旧配置分批迁入dotfiles/zsh/*.zsh - 把敏感 token 全部迁出
~/.zshrc,改放~/.config/secrets/或 Keychain - 补一个
Brewfile - 把 Clash 的可公开部分配置迁入
dotfiles/config/clash/ - 给
README.md增加 “新机器初始化” 和 “灾难恢复” 的入口链接
最小恢复命令块
如果你只想看最短路径,按下面跑:
xcode-select --install
# 安装 Homebrew、git、curl、jq、zsh
mkdir -p ~/work/codes/tools/macos
git clone http://192.168.1.83:33000/gao/dotfiles.git ~/work/codes/tools/macos/dotfiles
cd ~/work/codes/tools/macos/dotfiles
brew bundle --file Brewfile
./install/link.sh
source ~/.zshrc
# 恢复 secrets、ssh、kube、docker、keychain
# 安装 nvm / bun / pnpm / miniforge / jenv / openjdk / clashx / orbstack
./install/doctor.sh
./scripts/clash/check-openai-route.sh