把散落在代码里的真实部署值统一收进 config/,代码改为引用配置, 使仓库副本/开源导出不再带出生产域名、IP、内网路径与凭据。 新增 config/:platform.env.example(模板)· load.sh(shell 加载器)· index.cjs(node 加载器)· README.md(键一览与优先级)。 真实值放 config/platform.env —— 已 .gitignore 排除,不入库、不进导出。 TS 侧新增 src/platform-paths.ts 作部署路径的唯一解析处(零副作用): platformDir/stateDir/backupDir/artifactDir/installDir/scriptPath。 config.ts 接入这些字段;内置中继种子由生产 URL 改为空(改由 DSHS_OVERLAY_BOOTSTRAP_SEEDS 提供)。修掉 5 处硬编码绝对路径, src/** 注释中性化 116 行/53 文件。 scripts/** 36 个内部运维脚本:真令牌/PG 口令/隧道目标/主机号/路径 一律改从配置取;web/wake.html 的注册域白名单改为运行时从 location.hostname 推导;test/** 夹具 119 行/13 文件改 RFC 2606/5737 保留值,并把「内置种子必须为空」固化为回归断言。 取证:tsc 0 错;npm test 373/375(唯一失败 lease 属既有); 全仓扫描(大小写不敏感)代码面涉密标识 = 0;已部署 47 并零回归 (/opt/dsh/* 未搬家,/var/lib/dshs/platform 未被误建)。
39 lines
1.6 KiB
Bash
39 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
||
. "$(cd "$(dirname "$0")/.." && pwd)/config/load.sh"
|
||
# 存量数据并行搬运 47 → 106(4 路并发;瓶颈在源端小文件 IOPS,单流只 ~0.4MB/s)
|
||
# 搬完写 /root/push-parallel.done,供后续 cutover 判断
|
||
set -uo pipefail
|
||
KEY=/root/.ssh/dshworker_ed25519
|
||
DST=root@"$DSH_PEER_PUBLIC_IP"
|
||
SSHO="-i $KEY -o BatchMode=yes -o StrictHostKeyChecking=accept-new -o Compression=no"
|
||
SRC="$DSHS_DATA_ROOT"
|
||
LOG=/root/push-parallel.log
|
||
: > "$LOG"
|
||
|
||
ssh -n $SSHO "$DST" "mkdir -p $DSHS_DATA_ROOT"
|
||
echo "[$(date +%T)] 目标端就绪" >> "$LOG"
|
||
|
||
# 按"大小"分组:大用户单开一路,其余合流(每路一个 tar→ssh)
|
||
one() { # $1=组名 其余=相对路径列表
|
||
local name="$1"; shift
|
||
(
|
||
cd "$SRC" || exit 1
|
||
{ for p in "$@"; do [ -e "$p" ] && echo "$p"; done; } > "/tmp/list-$name.txt"
|
||
tar --numeric-owner --files-from="/tmp/list-$name.txt" -cf - \
|
||
| ssh $SSHO "$DST" "tar -C "$DSHS_DATA_ROOT" --numeric-owner -xf -"
|
||
echo "[$(date +%T)] $name 完成 rc=$?" >> "$LOG"
|
||
) &
|
||
}
|
||
|
||
# 组划分(按实际内容:1 个大用户 + 若干小目录)
|
||
one g1 "users/4092b965-2f68-4977-9989-68b3966f7df0"
|
||
one g2 "users/cce6d1cd-b376-4304-80f0-0e1c58c9ffde" "users/3ec95f69-6a4e-4d16-a415-56aa09396fc5"
|
||
one g3 "users/4eaeb26b-9e0c-4c68-9b61-0daf70664ae5" "users/74e8804a-e0c8-4645-84de-90dd3fae6c2b"
|
||
one g4 "users/7ba268be-6103-438c-8e6b-609b422ccbca" "users/ca3f36e0-937f-437e-b850-53b8230f20f8" \
|
||
"bundled-skills" "business-plugins" "whitelist-cache"
|
||
|
||
wait
|
||
echo "[$(date +%T)] 全部完成" >> "$LOG"
|
||
ssh -n $SSHO "$DST" "du -sm $DSHS_DATA_ROOT | cut -f1" >> "$LOG" 2>&1
|
||
touch /root/push-parallel.done
|