***付费内容***
服务端替换命令:
#!/usr/bin/env bash
set -euo pipefail
DEST_DIR="/home/tlbb/Server"
FILES=(
"/opt/tlbb-build/v0-85-9602/build/billing-release/bin/Billing"
"/opt/tlbb-build/v0-85-9602/build/sharememory-release/bin/ShareMemory"
"/opt/tlbb-build/v0-85-9602/build/login-release/bin/Login"
"/opt/tlbb-build/v0-85-9602/build/world-release/bin/World"
"/opt/tlbb-build/v0-85-9602/build/game-release/bin/Server"
"/opt/tlbb-build/v0-85-9602/build/game-release/bin/libFoxScriptEngine.so"
"/opt/tlbb-build/v0-85-9602/build/game-release/bin/libLuaLib.so"
)
mkdir -p "$DEST_DIR"
# 先检查所有编译产物,防止替换到一半才发现文件缺失。
for src in "${FILES[@]}"; do
if [[ ! -f "$src" ]]; then
echo "错误:找不到编译产物:$src"
exit 1
fi
done
updated=0
skipped=0
for src in "${FILES[@]}"; do
name="$(basename "$src")"
dst="$DEST_DIR/$name"
if [[ -f "$dst" ]] && cmp -s -- "$src" "$dst"; then
echo "[跳过] $name 内容没有变化"
((skipped += 1))
continue
fi
# 先写入同目录临时文件,再原子替换正式文件。
tmp="$(mktemp "$DEST_DIR/.${name}.new.XXXXXX")"
if ! install -m 0755 -- "$src" "$tmp"; then
rm -f -- "$tmp"
echo "错误:复制 $name 失败"
exit 1
fi
mv -f -- "$tmp" "$dst"
echo "[更新] $name"
((updated += 1))
done
echo
echo "替换完成:更新 $updated 个,跳过 $skipped 个。"
剩余 7% 内容需要支付 1.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|