feat: 校验五档等级 (ultrafast/fast/normal/slow/full) + --check-only 纯校验模式
This commit is contained in:
1 parent
2e505f6ea3
commit
fb59000fd1
3 files changed
+278
-10
No files matched your search
@@ -60,7 +60,9 @@ help / clear / quit
|
||||
| `--transfers` | 4 | rclone 并行传输数 |
|
||||
| `--resume` / `--no-resume` | 开 | rsync 断点续传 |
|
||||
| `--checksum` | 关 | rsync 校验模式 |
|
||||
| `--verify` | 关 | 完成后校验(rsync -c dry-run, 0 差异=一致) |
|
||||
| `--verify` | 关 | 传输完成后校验(等级由 `--verify-level` 决定) |
|
||||
| `--verify-level` | slow | 校验等级: ultrafast/fast/normal/slow/full |
|
||||
| `--check-only` | 关 | 纯校验模式: 不传输, 仅按等级校验源/目标 |
|
||||
| `--retry` | 0 | 失败自动补传轮数, **-1 = 无限重试** |
|
||||
| `--smart-resume` | 关 | 智能续传: 校验目标最新N个文件, 损坏删除后从断点续传 |
|
||||
| `--smart-check` | 5 | 智能续传校验文件数 (<=100MB 全校验, 更大只查大小) |
|
||||
@@ -91,6 +93,26 @@ help / clear / quit
|
||||
校验过程有**进度条**(总进度条复用)+ **单文件日志**(`校验 i/N: 文件名 ✓/✘ 损坏`),
|
||||
N 调大(如 50)也能实时看到校验进展。
|
||||
|
||||
### 校验等级(`--verify-level`)
|
||||
|
||||
| 等级 | 校验内容 | 188GB 耗时 | 适用 |
|
||||
|---|---|---|---|
|
||||
| `ultrafast` | 仅文件大小 | 秒级 | 快速健康检查 |
|
||||
| `fast` | 大小+mtime | ~1 分钟 | 常规检查 |
|
||||
| `normal` | 大小+mtime+最新N个md5 | 分钟级 | 兼顾速度与深度 |
|
||||
| `slow` | 全部文件 md5 | 40-60 分钟 | 全量可靠(默认) |
|
||||
| `full` | 全部md5+文件数对比 | 最慢 | 终极确认 |
|
||||
|
||||
**纯校验模式(`--check-only`)**: 不传输,只按等级校验源/目标一致性,
|
||||
用于传输中断后快速确认已传数据是否完好:
|
||||
|
||||
```bash
|
||||
# 快速检查已传数据(秒级)
|
||||
python3 transfer.py --mode cli --check-only --verify-level ultrafast /src/ /dst/
|
||||
# 全量校验已传数据(全部 md5)
|
||||
python3 transfer.py --mode cli --check-only --verify-level slow /src/ /dst/
|
||||
```
|
||||
|
||||
> rsync 原子写(临时文件+rename)保证掉卡不会产生半截损坏的正式文件,
|
||||
> 残留临时文件由补传后的 `--verify` 流程发现处理。
|
||||
|
||||
|
||||
Reference in new issue
Block a user