Files
dsh_ai1net_server/.workbuddy/tools/relay-transfer.sh
T
admin ce8e6ceed9 chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)
回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复:
- 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录)
- tmp/(32.4 M,按接续棒命名的过程临时区)
- .workbuddy/tmp/(39.5 M)
- 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物)
- tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留

入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与
接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、
.workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。

排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、
打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
2026-09-24 07:51:03 +08:00

40 lines
1.7 KiB
Bash

#!/bin/bash
# 带校验重试的接力搬运:47:/tmp/<prefix>-* --(并行拉+大小校验+重拉)--> 本机 --高速--> 106 --> (可选)解包
# 用法: _relay2.sh <prefix> <name> [解包目标目录]
export PATH="/d/Program Files/Git/usr/bin:/c/Windows/System32:/c/Windows:$PATH"
SSH="ssh -o BatchMode=yes -o ConnectTimeout=15"
SCP="scp -q -o BatchMode=yes -o ConnectTimeout=15"
P="$1"; N="$2"; DEST="$3"
L="/e/ProgramData/AI技能/aliyun-dsh-server/_relay-$N"
mkdir -p "$L"
$SSH bt-server "stat -c '%s %n' /tmp/$P-*" > "$L/remote.txt"
TOTAL=$(wc -l < "$L/remote.txt")
echo "远端分片=$TOTAL"
for round in 1 2 3; do
: > "$L/redo.txt"
while read -r rsz rpath; do
n=$(basename "$rpath")
lsz=$(stat -c%s "$L/$n" 2>/dev/null || echo 0)
[ "$rsz" != "$lsz" ] && echo "$rpath" >> "$L/redo.txt"
done < "$L/remote.txt"
NEED=$(wc -l < "$L/redo.txt")
echo "第${round}轮: 需拉/重拉 $NEED 片"
[ "$NEED" = "0" ] && break
xargs -P8 -I% $SCP bt-server:% "$L/" < "$L/redo.txt"
done
BAD=0
while read -r rsz rpath; do
n=$(basename "$rpath"); lsz=$(stat -c%s "$L/$n" 2>/dev/null || echo 0)
if [ "$rsz" != "$lsz" ]; then echo "❌ 仍不完整: $n 本地=$lsz 远端=$rsz"; BAD=1; fi
done < "$L/remote.txt"
[ "$BAD" = "1" ] && { echo "分片校验未通过,中止"; exit 1; }
echo "✅ 分片校验通过: $TOTAL 片 / $(du -cb "$L"/$P-* | tail -1 | cut -f1) 字节"
$SSH test106 "rm -rf /tmp/$N; mkdir -p /tmp/$N"
S=$(date +%s)
$SCP "$L"/$P-* test106:/tmp/$N/
E=$(date +%s)
echo "上传106: $($SSH test106 "ls /tmp/$N | wc -l") 片 耗时$((E-S))s"
if [ -n "$DEST" ]; then
$SSH test106 "cd /tmp/$N && cat $P-* > /tmp/$N.tgz && tar xzf /tmp/$N.tgz -C $DEST && echo '解包完成 → $DEST'"
fi