57 lines
1.1 KiB
Markdown
57 lines
1.1 KiB
Markdown
# CIR Scripts
|
|
|
|
## `cir-rsync-wrapper`
|
|
|
|
一个用于 CIR 黑盒 replay 的 rsync wrapper。
|
|
|
|
### 环境变量
|
|
|
|
- `REAL_RSYNC_BIN`
|
|
- 真实 rsync 二进制路径
|
|
- 默认优先 `/usr/bin/rsync`
|
|
- `CIR_MIRROR_ROOT`
|
|
- 本地镜像树根目录
|
|
- 当命令行中出现 `rsync://...` source 时必需
|
|
|
|
### 语义
|
|
|
|
- 仅改写 `rsync://host/path` 类型参数
|
|
- 其它参数原样透传给真实 rsync
|
|
- 改写目标:
|
|
- `rsync://example.net/repo/a.roa`
|
|
- →
|
|
- `<CIR_MIRROR_ROOT>/example.net/repo/a.roa`
|
|
|
|
### 兼容目标
|
|
|
|
- Routinator `--rsync-command`
|
|
- `rpki-client -e rsync_prog`
|
|
|
|
## 其它脚本
|
|
|
|
- `run_cir_replay_ours.sh`
|
|
- `run_cir_replay_routinator.sh`
|
|
- `run_cir_replay_rpki_client.sh`
|
|
- `run_cir_replay_matrix.sh`
|
|
|
|
## `cir-local-link-sync.py`
|
|
|
|
当 `CIR_LOCAL_LINK_MODE=1` 且 wrapper 检测到 source 已经被改写为本地 mirror 路径时,
|
|
wrapper 不再调用真实 `rsync`,而是调用这个 helper 完成:
|
|
|
|
- `hardlink` 优先的本地树同步
|
|
- 失败时回退到 copy
|
|
- 支持 `--delete`
|
|
|
|
`run_cir_replay_matrix.sh` 会顺序执行:
|
|
|
|
- `ours`
|
|
- Routinator
|
|
- `rpki-client`
|
|
|
|
并汇总生成:
|
|
|
|
- `summary.json`
|
|
- `summary.md`
|
|
- `detail.md`
|