feat: 系统调优 Go 版后端完整源码
- 19 个接口全部实测验收通过 (2026-08-08) - 结构: main.go + core/consts + gsysctl + gtuner + server - 含 build_go.sh 官方部署结构构建脚本 (amd64/arm64 交叉编译) - 数据无缝衔接 Python 版遗留 (快照/state/审计日志) - 备份自 156:/root/goddhv (2026-08-09)
This commit is contained in:
Executable
+80
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
# GMSSH「系统调优」Go 版后端构建脚本
|
||||
# 产出官方标准结构: dist/app/bin/{main, config.json, i18n/}
|
||||
set -euo pipefail
|
||||
|
||||
export PATH=$PATH:/usr/local/go/bin
|
||||
export GOPROXY=https://goproxy.cn,direct
|
||||
|
||||
CURDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$CURDIR"
|
||||
|
||||
# 架构: 默认 amd64, 可用 ARCH=arm64 交叉编译
|
||||
ARCH="${ARCH:-amd64}"
|
||||
DIST_BIN="$CURDIR/dist/app/bin"
|
||||
|
||||
echo "🚀 开始构建 Go 版后端 (arch=$ARCH)..."
|
||||
|
||||
# 1. 编译 main
|
||||
echo "⚙️ 编译 main.go (GOOS=linux GOARCH=$ARCH)..."
|
||||
GOOS=linux GOARCH="$ARCH" CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o "$DIST_BIN/main" .
|
||||
if [ ! -f "$DIST_BIN/main" ]; then
|
||||
echo "❌ 编译失败, 未找到产物"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ 编译完成: $DIST_BIN/main ($(stat -c%s "$DIST_BIN/main") bytes)"
|
||||
|
||||
# 2. 生成 config.json (官方格式, socket=app.sock)
|
||||
echo "📝 生成 config.json..."
|
||||
mkdir -p "$DIST_BIN"
|
||||
cat > "$DIST_BIN/config.json" <<'JSONEOF'
|
||||
{
|
||||
"test": {
|
||||
"jsonrpc": {
|
||||
"sockets": "app.sock"
|
||||
},
|
||||
"logger": {
|
||||
"path": "logs/",
|
||||
"file": "{Y-m-d}.log",
|
||||
"level": "info",
|
||||
"stdout": true,
|
||||
"rotateBackupLimit": 7,
|
||||
"rotateExpire": "1d"
|
||||
}
|
||||
},
|
||||
"prod": {
|
||||
"jsonrpc": {
|
||||
"sockets": "app.sock"
|
||||
},
|
||||
"logger": {
|
||||
"path": "../../logs/",
|
||||
"file": "{Y-m-d}.log",
|
||||
"level": "error",
|
||||
"stdout": false,
|
||||
"rotateBackupLimit": 30,
|
||||
"rotateExpire": "30d"
|
||||
}
|
||||
}
|
||||
}
|
||||
JSONEOF
|
||||
echo "✅ config.json 已生成"
|
||||
|
||||
# 3. 生成 i18n (基础国际化文件)
|
||||
echo "📝 生成 i18n..."
|
||||
mkdir -p "$DIST_BIN/i18n"
|
||||
cat > "$DIST_BIN/i18n/zh-CN.ini" <<'INIIEOF'
|
||||
REQUIRE_VALIDATION_TM="该参数不能为空"
|
||||
STATUS_OK="操作成功"
|
||||
INIIEOF
|
||||
cat > "$DIST_BIN/i18n/en.ini" <<'INIIEOF'
|
||||
REQUIRE_VALIDATION_TM="This parameter cannot be empty"
|
||||
STATUS_OK=" Operation successful"
|
||||
INIIEOF
|
||||
echo "✅ i18n 已生成"
|
||||
|
||||
# 4. 赋权
|
||||
chmod +x "$DIST_BIN/main"
|
||||
|
||||
echo ""
|
||||
echo "✅ 构建完成! 产物结构:"
|
||||
find "$CURDIR/dist/app/bin" -type f | sed "s|$CURDIR/||"
|
||||
Reference in New Issue
Block a user