ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

把 Claude Code Router 配置备份做起来:从随手复制到定时任务

把 Claude Code Router 配置备份做起来:从随手复制到定时任务 把 Claude Code Router 配置备份做起来从随手复制到定时任务【免费下载链接】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启动一看配好的提供商和路由规则全没了——旧版 JSON 配置在迁移过程中被覆盖API 密钥只能逐个重新填。从那以后Claude Code Router 配置备份成了我装完软件第一件事而不是等出事后才想起来的事。先搞清楚哪些东西丢了就完蛋了先别急着敲命令把资产清单看一遍心里有数才知道该保谁。Claude Code Router 的所有状态都集中在~/.claude-code-router/下Windows 是%APPDATA%\claude-code-router。核心是一个 SQLite 库旧版config.json的 JSON 配置在首次启动时会自动迁移进库里这个机制可以在 config-repository.ts 里看到。具体路径常量定义在 constants.ts文件 / 目录里面是什么丢了会怎样~/.claude-code-router/config.sqlite提供商、路由规则、API 密钥、运行状态⚠️ 全部归零密钥得一个个重新填~/.claude-code-router/config.json旧版 JSON 配置迁移后自动归档进库只剩从老版本回退时才用得上不致命~/.claude-code-router/app-data/request-logs.sqlite和request-log-bodies/请求日志与原始请求体可观测数据清空排查历史请求无从查起~/.claude-code-router/app-data/context-archive.sqlite上下文归档跨会话续接失效对话上下文要重搭~/.claude-code-router/app-data/usage.sqlite用量与计费统计用量对账从零开始~/.claude-code-router/app-data/certs/本地代理的 CA 证书与私钥系统代理失效得重新签发并重装macOS/Linux 上app-data是配置目录的子目录Windows 上它和配置目录同级。结论一句话备份整个.claude-code-router目录即可不用挑文件。轻度事故改坏了回个滚就行最高频的翻车姿势手改了一条路由规则一存服务就不认了。标准恢复动作就是下面三条口头禅记住改之前先 cp 一份。改配置之前先复制一份主库出来作为回滚点cp ~/.claude-code-router/config.sqlite ~/.claude-code-router/config.sqlite.bak确认改坏了停服务、覆盖回去、再启动ccr stop cp ~/.claude-code-router/config.sqlite.bak ~/.claude-code-router/config.sqlite ccr start跑完ccr start应该无报错直接拉起再开ccr ui看一眼提供商和路由规则应该跟改动前一模一样。别问我怎么知道的我每次回滚都是这三条命令搞定。中度事故文件没了从备份里捞文件真没了靠的就是一份随时能用的备份。合格的备份要凑齐三件套整目录打包不挑文件、带时间戳的命名多版本能区分、异地副本磁盘同死时还有救。下面这个脚本一次搞定打包加清理只保留最近 14 份#!/usr/bin/env bash # ~/ccr-backup.sh set -euo pipefail DEST_DIR$HOME/ccr-backups TS$(date %Y%m%d_%H%M%S) mkdir -p $DEST_DIR tar -czf $DEST_DIR/ccr-$TS.tar.gz -C $HOME .claude-code-router ls -1t $DEST_DIR/ccr-*.tar.gz | tail -n 15 | xargs -r rm -f echo backup done: $DEST_DIR/ccr-$TS.tar.gz执行完会看到一行backup done: ...的路径输出记下它。备份还要验解压列表看一眼内容对不对tar -tzf ~/ccr-backups/$(ls -1t ~/ccr-backups | head -1) | head -5你应该看到.claude-code-router/config.sqlite、.claude-code-router/app-data/之类的条目。异地副本直接scp到另一台机器或者丢进云盘这一步最容易翻车因为平时你觉得永远不会用到它。重度事故机器废了整个环境搬走机器没了整个.claude-code-router目录就是你的全部家当。迁移是个六步流程每步一句动作加一条命令停掉旧机器上的服务ccr stop整目录打包tar -czf ~/ccr-full.tar.gz -C ~ .claude-code-router新机器先装好工具npm install -g musistudio/claude-code-router把包传过去scp ~/ccr-full.tar.gz usernew-host:~/在新机器解包到位tar -xzf ccr-full.tar.gz -C ~启动ccr start服务起来之后打开ccr ui核对提供商列表和密钥数量跟旧机器一致齐了才算搬完。让备份自己跑定时任务 清理策略手动备份靠自觉自觉靠不住挂到定时任务上。macOS/Linux 在 crontab 里加一行每天凌晨 3 点执行脚本日志写到备份目录里0 3 * * * /bin/bash $HOME/ccr-backup.sh $HOME/ccr-backups/backup.log 21清理策略脚本里已经带了保留最近 14 份不用再额外配置。macOS 想用 launchd 的建一个每日 03:00 触发的 plist 指向~/ccr-backup.sh即可。跑完之后tail -5 ~/ccr-backups/backup.log确认没报错没验证过的备份等于没有备份。收个尾一张 checklist换机器前、上线前把这七条过一遍主库config.sqlite的备份存在文件名带时间戳异地副本另一台机器或云盘已就位tar -tzf列表校验至少通过过一次ccr stop/ccr start完整重启无误恢复后核对提供商列表与 API 密钥数量和原环境一致cron 任务已成功跑过一次日志无报错在备用机器上端到端演练过一次完整恢复✅ 备份的意义不在于文件放在那儿而在于出事那天你能 30 秒内把系统拉起来。【免费下载链接】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),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进