Files
gostock/scripts/restful_deploy.sh
yanweidong f74299fd25 init
2026-01-27 00:25:34 +08:00

55 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 配置部分
BINARY_NAME="restful" # 二进制文件名
BUILD_OUTPUT_DIR="./.builds" # 构建输出目录
# 服务器配置
REMOTE_USER="root" # 服务器用户名
REMOTE_HOST="market.senlin.ai" # 服务器地址
REMOTE_DIR="/data/app" # 服务器部署目录
SERVICE_NAME="restful" # 服务名称(如果有systemd服务)
echo "=== 开始部署流程 ==="
# 1. 编译Linux二进制文件
echo "正在编译Linux二进制文件..."
# 使用Go语言编译示例 (如果是其他语言请修改此部分)
# 如果不是Go项目请替换为你的构建命令如make等
GOEXPERIMENT=jsonv2 GOOS=linux GOARCH=amd64 go build -o "${BUILD_OUTPUT_DIR}/${BINARY_NAME}" ./cmd/main
if [ $? -ne 0 ]; then
echo "编译失败!"
exit 1
fi
echo "编译成功: ${BUILD_OUTPUT_DIR}/${BINARY_NAME}"
# 2. 停止远程服务
echo "正在停止远程服务..."
ssh -p 3142 "${REMOTE_USER}@${REMOTE_HOST}" << EOF
systemctl stop "${SERVICE_NAME}"
EOF
# 3. 上传到服务器
echo "正在上传文件到服务器..."
scp -P 3142 "${BUILD_OUTPUT_DIR}/${BINARY_NAME}" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/${BINARY_NAME}"
scp -P 3142 ./etc/${SERVICE_NAME}_prod.yaml "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/etc/${SERVICE_NAME}_prod.yaml"
scp -P 3142 ./etc/${SERVICE_NAME}.service "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/etc/${SERVICE_NAME}.service"
# 4. 设置执行权限并启动服务
echo "正在设置权限并启动服务..."
ssh -p 3142 "${REMOTE_USER}@${REMOTE_HOST}" << EOF
chmod +x "${REMOTE_DIR}/${BINARY_NAME}"
sudo ln -s ${REMOTE_DIR}/etc/${BINARY_NAME}.service /etc/systemd/system/${BINARY_NAME}.service
rm -rf ${REMOTE_DIR}/logs/${BINARY_NAME}.log
systemctl daemon-reload
systemctl start "${BINARY_NAME}"
systemctl status "${BINARY_NAME}" && echo "服务启动成功!" || echo "服务启动可能失败!"
cat ${REMOTE_DIR}/logs/${BINARY_NAME}.log
EOF
echo "=== 部署完成 ==="