Claude Code Router配置备份:5分钟搭好容灾闭环
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
Claude Code Router(CCR)是本地 AI 网关控制面,路由规则、Provider 密钥、请求日志全部集中在~/.claude-code-router一个目录里。本文解决两个具体问题:CCR 配置备份怎么做,以及 config.sqlite 损坏后如何恢复。
误删、坏盘与换机:备份要防的三件事
一次清理缓存的rm -rf顺手删掉了~/.claude-code-router,路由规则和全部 Provider 密钥跟着蒸发。系统盘损坏重装后,新装的 CCR 停在空白引导页,而旧配置没有任何副本。旧笔记本换到新机器,CCR 能启动但没有一条路由生效,终端里的 Claude Code 直接报错退出。
这三种情况背后是同一件事:CCR 的所有状态都压在本地一个目录上,没有任何冗余。
配置资产盘点
备份前先搞清楚"要保的是什么"。当前版本运行配置存在 SQLite 里(macOS/Linux 为~/.claude-code-router/config.sqlite,Windows 在%APPDATA%\claude-code-router\),路径逻辑见 app-paths.ts:
| 资产 | 作用 | 是否必备 |
|---|---|---|
config.sqlite | 主配置库:Provider、路由、API 密钥、Profile | 必备 |
config.sqlite-wal/-shm | SQLite 预写日志与共享内存,主库未合并时状态在这里 | 必备 |
config.json | 旧版配置,无 SQLite 时作为一次性迁移来源 | 建议备 |
app-data/请求日志 | 请求体与可观测数据,排查路由问题的依据 | 可选 |
bin/ | ccr 可执行文件与 PATH 注入 | 可重装,不备 |
Docker 的/data挂载 | 容器部署时全部数据都在/data/.claude-code-router | 部署形态决定 |
⚠️ 注意:不要把 WAL/SHM 两个辅助文件漏掉。只拷主库而 CCR 正在写入时,备份出来的很可能是一个"缺了最后一段"的库。细节可参考 配置数据库位置。
备份操作:CCR 配置备份的三种做法
手动备份
先停掉 CCR 桌面 App,让 WAL 落盘,再进配置目录打包,然后列出归档内容确认没有漏文件:
cd ~/.claude-code-router tar czf ~/backups/ccr-config-$(date +%Y%m%d).tar.gz \ config.sqlite config.sqlite-wal config.sqlite-shm config.json tar tzf ~/backups/ccr-config-$(date +%Y%m%d).tar.gz最后一条命令会打印归档里的文件清单,能看到config.sqlite及其辅助文件,说明这次备份是完整的。
自动化备份
把下面脚本存成~/.local/bin/ccr-backup.sh,每天由 crontab 触发。KEEP就是保留策略参数:只留最近 N 天:
#!/bin/bash # CCR 配置自动备份(每日由 crontab 调用) BACKUP_DIR="$HOME/backups/ccr" # 备份目录独立于配置目录,互不影响 KEEP=14 # 保留策略:仅保留最近 14 份备份 mkdir -p "$BACKUP_DIR" cd "$HOME/.claude-code-router" || exit 1 tar czf "$BACKUP_DIR/ccr-config-$(date +%Y%m%d).tar.gz" \ config.sqlite config.sqlite-wal config.sqlite-shm config.json # 清理超期备份 find "$BACKUP_DIR" -name "ccr-config-*.tar.gz" -mtime +"$KEEP" -delete给 crontab 加一行让它每天凌晨 3 点跑,crontab -l能看到即配置成功:
0 3 * * * ~/.local/bin/ccr-backup.sh >> ~/.local/bin/ccr-backup.log 2>&1异地与加密存储
备份里含明文 API 密钥,本地留一份之外,再用rsync同步到 NAS 或远端机器,并用age或 7-Zip 加密后再上传网盘。原则只有一条:任何单点故障都不能同时带走原始配置和它唯一的备份。
Claude Code Router 恢复演练:损坏修复与跨设备迁移配置
T+0 发现异常。终端里 Claude Code 报"未找到有效 Profile",或 UI 里 Provider 列表空空如也。先别重启,跑一条完整性检查,输出ok说明库没坏,问题在别处;输出database disk image is malformed才确认是 config.json 损坏修复这一类场景(这里是 config.sqlite):
sqlite3 ~/.claude-code-router/config.sqlite "PRAGMA integrity_check;"T+5min 定位备份。按时间倒序看一眼备份目录,挑最近的完好一份:
ls -lt ~/backups/ccr | head -5T+15min 完成恢复。退出 CCR 桌面 App,把选中的归档解压回配置目录,再启动 CCR 逐个确认 Provider 和路由规则都在:
tar xzf ~/backups/ccr/ccr-config-20260830.tar.gz -C ~/.claude-code-router/跨设备迁移配置走的是同一条路:新机器装好 CCR 但先不启动,把 tar.gz 放到位、解压、启动,五分钟就能接上旧环境的完整状态。
进阶加固
版本控制。用桌面 UI 把配置导出为 JSON,放进私有 git 仓库跟踪;sqlite 二进制文件本身别提交。每次改完路由规则提交一次,出问题git log找到对应版本直接回滚,比翻备份包快得多。
定期校验。每月挑一天做两件事:对线上库跑一遍PRAGMA integrity_check,再把最近一份备份解压到临时目录确认能解开、能导入。> 💡 提示:没被成功恢复过的备份,只能算"待验证数据"。
下次升级系统或换机器之前,先花十五分钟跑一遍恢复演练——备份只有被真正用过一次,才算存在。
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考