commits
This commit is contained in:
+29
-29
@@ -1,29 +1,29 @@
|
||||
[Unit]
|
||||
Description=Go API Server
|
||||
After=network.target mysql.service
|
||||
Wants=mysql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=/www/wwwroot/api.yunzer.cn
|
||||
ExecStart=/usr/local/go/bin/go run main.go
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
StandardOutput=append:/www/wwwroot/api.yunzer.cn/go.log
|
||||
StandardError=append:/www/wwwroot/api.yunzer.cn/go.log
|
||||
|
||||
# 环境变量
|
||||
Environment="PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
# 资源限制
|
||||
LimitNOFILE=65535
|
||||
LimitNPROC=65535
|
||||
|
||||
# 安全设置
|
||||
PrivateTmp=true
|
||||
NoNewPrivileges=false
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
[Unit]
|
||||
Description=Go API Server
|
||||
After=network.target mysql.service
|
||||
Wants=mysql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=/www/wwwroot/api.yunzer.cn
|
||||
ExecStart=/usr/local/go/bin/go run main.go
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
StandardOutput=append:/www/wwwroot/api.yunzer.cn/go.log
|
||||
StandardError=append:/www/wwwroot/api.yunzer.cn/go.log
|
||||
|
||||
# 环境变量
|
||||
Environment="PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
# 资源限制
|
||||
LimitNOFILE=65535
|
||||
LimitNPROC=65535
|
||||
|
||||
# 安全设置
|
||||
PrivateTmp=true
|
||||
NoNewPrivileges=false
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -1,168 +1,168 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ========================================
|
||||
# 安装 systemd 服务脚本
|
||||
# 用途:配置 Go API 为 systemd 服务
|
||||
# ========================================
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 配置
|
||||
SERVICE_NAME="go-api"
|
||||
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SERVICE_TEMPLATE="${SCRIPT_DIR}/${SERVICE_NAME}.service"
|
||||
WORK_DIR="/www/wwwroot/api.yunzer.cn"
|
||||
MAIN_FILE="${WORK_DIR}/main.go"
|
||||
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}安装 Go API systemd 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
# 检查是否为 root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${RED}错误:请使用 root 用户运行此脚本${NC}"
|
||||
echo "使用方法: sudo bash $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查工作目录
|
||||
if [ ! -d "$WORK_DIR" ]; then
|
||||
echo -e "${RED}错误:工作目录不存在: $WORK_DIR${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 main.go
|
||||
if [ ! -f "$MAIN_FILE" ]; then
|
||||
echo -e "${RED}错误:找不到 main.go: $MAIN_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 Go 是否安装
|
||||
if ! command -v go &> /dev/null; then
|
||||
echo -e "${RED}错误:Go 未安装或不在 PATH 中${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
GO_PATH=$(which go)
|
||||
echo -e "${GREEN}✓ Go 路径: $GO_PATH${NC}"
|
||||
|
||||
# 停止现有服务
|
||||
echo -e "${YELLOW}1. 停止现有服务...${NC}"
|
||||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
systemctl stop "$SERVICE_NAME"
|
||||
echo -e "${GREEN} ✓ 已停止现有服务${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} - 服务未运行${NC}"
|
||||
fi
|
||||
|
||||
# 停止可能的手动启动进程
|
||||
echo -e "${YELLOW}2. 清理手动启动的进程...${NC}"
|
||||
if pgrep -f "go run main.go" > /dev/null; then
|
||||
pkill -f "go run main.go"
|
||||
echo -e "${GREEN} ✓ 已清理手动启动的进程${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} - 无手动启动的进程${NC}"
|
||||
fi
|
||||
|
||||
# 创建服务文件
|
||||
echo -e "${YELLOW}3. 创建 systemd 服务文件...${NC}"
|
||||
|
||||
cat > "$SERVICE_FILE" << EOF
|
||||
[Unit]
|
||||
Description=Go API Server
|
||||
After=network.target mysql.service
|
||||
Wants=mysql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=$WORK_DIR
|
||||
ExecStart=$GO_PATH run main.go
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
StandardOutput=append:$WORK_DIR/go.log
|
||||
StandardError=append:$WORK_DIR/go.log
|
||||
|
||||
# 环境变量
|
||||
Environment="PATH=$GO_PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
# 资源限制
|
||||
LimitNOFILE=65535
|
||||
LimitNPROC=65535
|
||||
|
||||
# 安全设置
|
||||
PrivateTmp=true
|
||||
NoNewPrivileges=false
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN} ✓ 服务文件已创建: $SERVICE_FILE${NC}"
|
||||
|
||||
# 重载 systemd
|
||||
echo -e "${YELLOW}4. 重载 systemd 配置...${NC}"
|
||||
systemctl daemon-reload
|
||||
echo -e "${GREEN} ✓ systemd 配置已重载${NC}"
|
||||
|
||||
# 启动服务
|
||||
echo -e "${YELLOW}5. 启动服务...${NC}"
|
||||
systemctl start "$SERVICE_NAME"
|
||||
sleep 2
|
||||
|
||||
# 检查服务状态
|
||||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
echo -e "${GREEN} ✓ 服务启动成功${NC}"
|
||||
else
|
||||
echo -e "${RED} ✗ 服务启动失败${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}查看错误日志:${NC}"
|
||||
journalctl -u "$SERVICE_NAME" -n 20 --no-pager
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 启用开机自启
|
||||
echo -e "${YELLOW}6. 启用开机自启...${NC}"
|
||||
systemctl enable "$SERVICE_NAME"
|
||||
echo -e "${GREEN} ✓ 已启用开机自启${NC}"
|
||||
|
||||
# 显示服务状态
|
||||
echo ""
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}安装完成!${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}服务信息:${NC}"
|
||||
echo -e " 服务名称: $SERVICE_NAME"
|
||||
echo -e " 工作目录: $WORK_DIR"
|
||||
echo -e " 日志文件: $WORK_DIR/go.log"
|
||||
echo -e " 配置文件: $SERVICE_FILE"
|
||||
echo ""
|
||||
echo -e "${GREEN}常用命令:${NC}"
|
||||
echo -e " 启动服务: systemctl start $SERVICE_NAME"
|
||||
echo -e " 停止服务: systemctl stop $SERVICE_NAME"
|
||||
echo -e " 重启服务: systemctl restart $SERVICE_NAME"
|
||||
echo -e " 查看状态: systemctl status $SERVICE_NAME"
|
||||
echo -e " 查看日志: journalctl -u $SERVICE_NAME -f"
|
||||
echo -e " 查看文件日志: tail -f $WORK_DIR/go.log"
|
||||
echo ""
|
||||
echo -e "${YELLOW}当前服务状态:${NC}"
|
||||
systemctl status "$SERVICE_NAME" --no-pager -l
|
||||
echo ""
|
||||
echo -e "${YELLOW}最近日志(最后 10 行):${NC}"
|
||||
if [ -f "$WORK_DIR/go.log" ]; then
|
||||
tail -n 10 "$WORK_DIR/go.log"
|
||||
else
|
||||
echo " 日志文件尚未创建"
|
||||
fi
|
||||
echo ""
|
||||
#!/bin/bash
|
||||
|
||||
# ========================================
|
||||
# 安装 systemd 服务脚本
|
||||
# 用途:配置 Go API 为 systemd 服务
|
||||
# ========================================
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 配置
|
||||
SERVICE_NAME="go-api"
|
||||
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SERVICE_TEMPLATE="${SCRIPT_DIR}/${SERVICE_NAME}.service"
|
||||
WORK_DIR="/www/wwwroot/api.yunzer.cn"
|
||||
MAIN_FILE="${WORK_DIR}/main.go"
|
||||
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}安装 Go API systemd 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
# 检查是否为 root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${RED}错误:请使用 root 用户运行此脚本${NC}"
|
||||
echo "使用方法: sudo bash $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查工作目录
|
||||
if [ ! -d "$WORK_DIR" ]; then
|
||||
echo -e "${RED}错误:工作目录不存在: $WORK_DIR${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 main.go
|
||||
if [ ! -f "$MAIN_FILE" ]; then
|
||||
echo -e "${RED}错误:找不到 main.go: $MAIN_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 Go 是否安装
|
||||
if ! command -v go &> /dev/null; then
|
||||
echo -e "${RED}错误:Go 未安装或不在 PATH 中${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
GO_PATH=$(which go)
|
||||
echo -e "${GREEN}✓ Go 路径: $GO_PATH${NC}"
|
||||
|
||||
# 停止现有服务
|
||||
echo -e "${YELLOW}1. 停止现有服务...${NC}"
|
||||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
systemctl stop "$SERVICE_NAME"
|
||||
echo -e "${GREEN} ✓ 已停止现有服务${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} - 服务未运行${NC}"
|
||||
fi
|
||||
|
||||
# 停止可能的手动启动进程
|
||||
echo -e "${YELLOW}2. 清理手动启动的进程...${NC}"
|
||||
if pgrep -f "go run main.go" > /dev/null; then
|
||||
pkill -f "go run main.go"
|
||||
echo -e "${GREEN} ✓ 已清理手动启动的进程${NC}"
|
||||
else
|
||||
echo -e "${YELLOW} - 无手动启动的进程${NC}"
|
||||
fi
|
||||
|
||||
# 创建服务文件
|
||||
echo -e "${YELLOW}3. 创建 systemd 服务文件...${NC}"
|
||||
|
||||
cat > "$SERVICE_FILE" << EOF
|
||||
[Unit]
|
||||
Description=Go API Server
|
||||
After=network.target mysql.service
|
||||
Wants=mysql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=$WORK_DIR
|
||||
ExecStart=$GO_PATH run main.go
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
StandardOutput=append:$WORK_DIR/go.log
|
||||
StandardError=append:$WORK_DIR/go.log
|
||||
|
||||
# 环境变量
|
||||
Environment="PATH=$GO_PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
# 资源限制
|
||||
LimitNOFILE=65535
|
||||
LimitNPROC=65535
|
||||
|
||||
# 安全设置
|
||||
PrivateTmp=true
|
||||
NoNewPrivileges=false
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN} ✓ 服务文件已创建: $SERVICE_FILE${NC}"
|
||||
|
||||
# 重载 systemd
|
||||
echo -e "${YELLOW}4. 重载 systemd 配置...${NC}"
|
||||
systemctl daemon-reload
|
||||
echo -e "${GREEN} ✓ systemd 配置已重载${NC}"
|
||||
|
||||
# 启动服务
|
||||
echo -e "${YELLOW}5. 启动服务...${NC}"
|
||||
systemctl start "$SERVICE_NAME"
|
||||
sleep 2
|
||||
|
||||
# 检查服务状态
|
||||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
echo -e "${GREEN} ✓ 服务启动成功${NC}"
|
||||
else
|
||||
echo -e "${RED} ✗ 服务启动失败${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}查看错误日志:${NC}"
|
||||
journalctl -u "$SERVICE_NAME" -n 20 --no-pager
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 启用开机自启
|
||||
echo -e "${YELLOW}6. 启用开机自启...${NC}"
|
||||
systemctl enable "$SERVICE_NAME"
|
||||
echo -e "${GREEN} ✓ 已启用开机自启${NC}"
|
||||
|
||||
# 显示服务状态
|
||||
echo ""
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}安装完成!${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}服务信息:${NC}"
|
||||
echo -e " 服务名称: $SERVICE_NAME"
|
||||
echo -e " 工作目录: $WORK_DIR"
|
||||
echo -e " 日志文件: $WORK_DIR/go.log"
|
||||
echo -e " 配置文件: $SERVICE_FILE"
|
||||
echo ""
|
||||
echo -e "${GREEN}常用命令:${NC}"
|
||||
echo -e " 启动服务: systemctl start $SERVICE_NAME"
|
||||
echo -e " 停止服务: systemctl stop $SERVICE_NAME"
|
||||
echo -e " 重启服务: systemctl restart $SERVICE_NAME"
|
||||
echo -e " 查看状态: systemctl status $SERVICE_NAME"
|
||||
echo -e " 查看日志: journalctl -u $SERVICE_NAME -f"
|
||||
echo -e " 查看文件日志: tail -f $WORK_DIR/go.log"
|
||||
echo ""
|
||||
echo -e "${YELLOW}当前服务状态:${NC}"
|
||||
systemctl status "$SERVICE_NAME" --no-pager -l
|
||||
echo ""
|
||||
echo -e "${YELLOW}最近日志(最后 10 行):${NC}"
|
||||
if [ -f "$WORK_DIR/go.log" ]; then
|
||||
tail -n 10 "$WORK_DIR/go.log"
|
||||
else
|
||||
echo " 日志文件尚未创建"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
@echo off
|
||||
REM 安装Go依赖脚本 (Windows)
|
||||
|
||||
echo 开始安装Go依赖...
|
||||
echo.
|
||||
|
||||
REM 进入go目录
|
||||
cd /d "%~dp0\.."
|
||||
|
||||
REM 下载依赖
|
||||
echo 下载依赖包...
|
||||
go mod download
|
||||
|
||||
REM 整理依赖
|
||||
echo 整理依赖...
|
||||
go mod tidy
|
||||
|
||||
REM 验证依赖
|
||||
echo 验证依赖...
|
||||
go mod verify
|
||||
|
||||
echo.
|
||||
echo 依赖安装完成!
|
||||
echo.
|
||||
echo 已安装的主要依赖:
|
||||
echo - github.com/beego/beego/v2
|
||||
echo - github.com/qiniu/go-sdk/v7 (七牛云SDK)
|
||||
echo - github.com/golang-jwt/jwt/v5
|
||||
echo - github.com/go-sql-driver/mysql
|
||||
echo.
|
||||
echo 下一步:
|
||||
echo 1. 执行数据库迁移: mysql -u root -p your_database ^< migrations/add_storage_config_table.sql
|
||||
echo 2. 配置存储设置: 访问平台管理后台 -^> 系统设置 -^> 平台设置 -^> 存储配置
|
||||
echo 3. 重启服务: bee run 或 go run main.go
|
||||
echo.
|
||||
pause
|
||||
@echo off
|
||||
REM 安装Go依赖脚本 (Windows)
|
||||
|
||||
echo 开始安装Go依赖...
|
||||
echo.
|
||||
|
||||
REM 进入go目录
|
||||
cd /d "%~dp0\.."
|
||||
|
||||
REM 下载依赖
|
||||
echo 下载依赖包...
|
||||
go mod download
|
||||
|
||||
REM 整理依赖
|
||||
echo 整理依赖...
|
||||
go mod tidy
|
||||
|
||||
REM 验证依赖
|
||||
echo 验证依赖...
|
||||
go mod verify
|
||||
|
||||
echo.
|
||||
echo 依赖安装完成!
|
||||
echo.
|
||||
echo 已安装的主要依赖:
|
||||
echo - github.com/beego/beego/v2
|
||||
echo - github.com/qiniu/go-sdk/v7 (七牛云SDK)
|
||||
echo - github.com/golang-jwt/jwt/v5
|
||||
echo - github.com/go-sql-driver/mysql
|
||||
echo.
|
||||
echo 下一步:
|
||||
echo 1. 执行数据库迁移: mysql -u root -p your_database ^< migrations/add_storage_config_table.sql
|
||||
echo 2. 配置存储设置: 访问平台管理后台 -^> 系统设置 -^> 平台设置 -^> 存储配置
|
||||
echo 3. 重启服务: bee run 或 go run main.go
|
||||
echo.
|
||||
pause
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 安装Go依赖脚本
|
||||
|
||||
echo "开始安装Go依赖..."
|
||||
|
||||
# 进入go目录
|
||||
cd "$(dirname "$0")/.." || exit
|
||||
|
||||
# 下载依赖
|
||||
echo "下载依赖包..."
|
||||
go mod download
|
||||
|
||||
# 整理依赖
|
||||
echo "整理依赖..."
|
||||
go mod tidy
|
||||
|
||||
# 验证依赖
|
||||
echo "验证依赖..."
|
||||
go mod verify
|
||||
|
||||
echo "依赖安装完成!"
|
||||
echo ""
|
||||
echo "已安装的主要依赖:"
|
||||
echo "- github.com/beego/beego/v2"
|
||||
echo "- github.com/qiniu/go-sdk/v7 (七牛云SDK)"
|
||||
echo "- github.com/golang-jwt/jwt/v5"
|
||||
echo "- github.com/go-sql-driver/mysql"
|
||||
echo ""
|
||||
echo "下一步:"
|
||||
echo "1. 执行数据库迁移: mysql -u root -p your_database < migrations/add_storage_config_table.sql"
|
||||
echo "2. 配置存储设置: 访问平台管理后台 -> 系统设置 -> 平台设置 -> 存储配置"
|
||||
echo "3. 重启服务: bee run 或 go run main.go"
|
||||
#!/bin/bash
|
||||
|
||||
# 安装Go依赖脚本
|
||||
|
||||
echo "开始安装Go依赖..."
|
||||
|
||||
# 进入go目录
|
||||
cd "$(dirname "$0")/.." || exit
|
||||
|
||||
# 下载依赖
|
||||
echo "下载依赖包..."
|
||||
go mod download
|
||||
|
||||
# 整理依赖
|
||||
echo "整理依赖..."
|
||||
go mod tidy
|
||||
|
||||
# 验证依赖
|
||||
echo "验证依赖..."
|
||||
go mod verify
|
||||
|
||||
echo "依赖安装完成!"
|
||||
echo ""
|
||||
echo "已安装的主要依赖:"
|
||||
echo "- github.com/beego/beego/v2"
|
||||
echo "- github.com/qiniu/go-sdk/v7 (七牛云SDK)"
|
||||
echo "- github.com/golang-jwt/jwt/v5"
|
||||
echo "- github.com/go-sql-driver/mysql"
|
||||
echo ""
|
||||
echo "下一步:"
|
||||
echo "1. 执行数据库迁移: mysql -u root -p your_database < migrations/add_storage_config_table.sql"
|
||||
echo "2. 配置存储设置: 访问平台管理后台 -> 系统设置 -> 平台设置 -> 存储配置"
|
||||
echo "3. 重启服务: bee run 或 go run main.go"
|
||||
|
||||
+19
-19
@@ -1,19 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 快速重启脚本
|
||||
echo "停止服务..."
|
||||
systemctl stop go-api
|
||||
pkill -f "go run main.go"
|
||||
|
||||
echo "启动服务..."
|
||||
systemctl start go-api
|
||||
|
||||
echo "等待服务启动..."
|
||||
sleep 3
|
||||
|
||||
echo "查看服务状态..."
|
||||
systemctl status go-api --no-pager
|
||||
|
||||
echo ""
|
||||
echo "查看最近日志..."
|
||||
tail -n 20 /www/wwwroot/api.yunzer.cn/go.log
|
||||
#!/bin/bash
|
||||
|
||||
# 快速重启脚本
|
||||
echo "停止服务..."
|
||||
systemctl stop go-api
|
||||
pkill -f "go run main.go"
|
||||
|
||||
echo "启动服务..."
|
||||
systemctl start go-api
|
||||
|
||||
echo "等待服务启动..."
|
||||
sleep 3
|
||||
|
||||
echo "查看服务状态..."
|
||||
systemctl status go-api --no-pager
|
||||
|
||||
echo ""
|
||||
echo "查看最近日志..."
|
||||
tail -n 20 /www/wwwroot/api.yunzer.cn/go.log
|
||||
|
||||
+285
-285
@@ -1,285 +1,285 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ========================================
|
||||
# Go 服务管理脚本
|
||||
# 用途:启动、停止、重启、查看状态
|
||||
# ========================================
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 配置
|
||||
SERVICE_DIR="/www/wwwroot/api.yunzer.cn"
|
||||
LOG_FILE="$SERVICE_DIR/go.log"
|
||||
PID_FILE="$SERVICE_DIR/go.pid"
|
||||
MAIN_FILE="$SERVICE_DIR/main.go"
|
||||
|
||||
# 检查服务目录
|
||||
if [ ! -d "$SERVICE_DIR" ]; then
|
||||
echo -e "${RED}错误:服务目录不存在: $SERVICE_DIR${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 main.go
|
||||
if [ ! -f "$MAIN_FILE" ]; then
|
||||
echo -e "${RED}错误:找不到 main.go: $MAIN_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 获取进程 ID
|
||||
get_pid() {
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
cat "$PID_FILE"
|
||||
else
|
||||
# 通过进程名查找
|
||||
pgrep -f "go run main.go" | head -n 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查服务是否运行
|
||||
is_running() {
|
||||
local pid=$(get_pid)
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 启动服务
|
||||
start() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}启动 Go 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
if is_running; then
|
||||
local pid=$(get_pid)
|
||||
echo -e "${YELLOW}服务已在运行中 (PID: $pid)${NC}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo -e "${YELLOW}切换到服务目录...${NC}"
|
||||
cd "$SERVICE_DIR"
|
||||
|
||||
echo -e "${YELLOW}启动服务...${NC}"
|
||||
nohup go run main.go > "$LOG_FILE" 2>&1 &
|
||||
local pid=$!
|
||||
echo $pid > "$PID_FILE"
|
||||
|
||||
# 等待服务启动
|
||||
sleep 2
|
||||
|
||||
if is_running; then
|
||||
echo -e "${GREEN}✓ 服务启动成功 (PID: $pid)${NC}"
|
||||
echo -e "${GREEN}✓ 日志文件: $LOG_FILE${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}查看日志:${NC}"
|
||||
echo -e " tail -f $LOG_FILE"
|
||||
echo ""
|
||||
echo -e "${YELLOW}查看最近日志:${NC}"
|
||||
tail -n 20 "$LOG_FILE"
|
||||
else
|
||||
echo -e "${RED}✗ 服务启动失败${NC}"
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
echo -e "${YELLOW}最近的错误日志:${NC}"
|
||||
tail -n 20 "$LOG_FILE"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 停止服务
|
||||
stop() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}停止 Go 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
if ! is_running; then
|
||||
echo -e "${YELLOW}服务未运行${NC}"
|
||||
rm -f "$PID_FILE"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local pid=$(get_pid)
|
||||
echo -e "${YELLOW}停止服务 (PID: $pid)...${NC}"
|
||||
|
||||
# 尝试优雅停止
|
||||
kill "$pid" 2>/dev/null || true
|
||||
|
||||
# 等待最多 10 秒
|
||||
local count=0
|
||||
while is_running && [ $count -lt 10 ]; do
|
||||
sleep 1
|
||||
count=$((count + 1))
|
||||
echo -n "."
|
||||
done
|
||||
echo ""
|
||||
|
||||
# 如果还在运行,强制停止
|
||||
if is_running; then
|
||||
echo -e "${YELLOW}强制停止服务...${NC}"
|
||||
kill -9 "$pid" 2>/dev/null || true
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
# 清理所有相关进程
|
||||
pkill -f "go run main.go" 2>/dev/null || true
|
||||
|
||||
rm -f "$PID_FILE"
|
||||
|
||||
if is_running; then
|
||||
echo -e "${RED}✗ 服务停止失败${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo -e "${GREEN}✓ 服务已停止${NC}"
|
||||
fi
|
||||
}
|
||||
|
||||
# 重启服务
|
||||
restart() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}重启 Go 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
stop
|
||||
echo ""
|
||||
sleep 2
|
||||
start
|
||||
}
|
||||
|
||||
# 查看状态
|
||||
status() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}Go 服务状态${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
if is_running; then
|
||||
local pid=$(get_pid)
|
||||
echo -e "${GREEN}✓ 服务运行中${NC}"
|
||||
echo -e " PID: $pid"
|
||||
echo -e " 目录: $SERVICE_DIR"
|
||||
echo -e " 日志: $LOG_FILE"
|
||||
echo ""
|
||||
|
||||
# 显示进程信息
|
||||
echo -e "${YELLOW}进程信息:${NC}"
|
||||
ps aux | grep "$pid" | grep -v grep
|
||||
echo ""
|
||||
|
||||
# 显示端口监听
|
||||
echo -e "${YELLOW}端口监听:${NC}"
|
||||
netstat -tlnp 2>/dev/null | grep "$pid" || lsof -i -P -n | grep "$pid" || echo " 无法获取端口信息"
|
||||
echo ""
|
||||
|
||||
# 显示最近日志
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
echo -e "${YELLOW}最近日志(最后 10 行):${NC}"
|
||||
tail -n 10 "$LOG_FILE"
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}✗ 服务未运行${NC}"
|
||||
|
||||
# 检查是否有残留进程
|
||||
local pids=$(pgrep -f "go run main.go" || true)
|
||||
if [ -n "$pids" ]; then
|
||||
echo -e "${YELLOW}发现残留进程:${NC}"
|
||||
ps aux | grep "go run main.go" | grep -v grep
|
||||
echo ""
|
||||
echo -e "${YELLOW}清理残留进程:${NC}"
|
||||
echo " bash $0 stop"
|
||||
fi
|
||||
|
||||
# 显示最近日志
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
echo ""
|
||||
echo -e "${YELLOW}最近日志(最后 20 行):${NC}"
|
||||
tail -n 20 "$LOG_FILE"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 查看日志
|
||||
logs() {
|
||||
if [ ! -f "$LOG_FILE" ]; then
|
||||
echo -e "${RED}日志文件不存在: $LOG_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "-f" ] || [ "$1" = "--follow" ]; then
|
||||
echo -e "${YELLOW}实时查看日志(Ctrl+C 退出):${NC}"
|
||||
tail -f "$LOG_FILE"
|
||||
else
|
||||
local lines=${1:-50}
|
||||
echo -e "${YELLOW}最近 $lines 行日志:${NC}"
|
||||
tail -n "$lines" "$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
# 显示帮助
|
||||
help() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}Go 服务管理脚本${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
echo "用法: $0 {start|stop|restart|status|logs}"
|
||||
echo ""
|
||||
echo "命令:"
|
||||
echo " start - 启动服务"
|
||||
echo " stop - 停止服务"
|
||||
echo " restart - 重启服务"
|
||||
echo " status - 查看服务状态"
|
||||
echo " logs - 查看日志(默认最后 50 行)"
|
||||
echo " logs -f - 实时查看日志"
|
||||
echo " logs 100 - 查看最后 100 行日志"
|
||||
echo ""
|
||||
echo "示例:"
|
||||
echo " $0 start # 启动服务"
|
||||
echo " $0 restart # 重启服务"
|
||||
echo " $0 status # 查看状态"
|
||||
echo " $0 logs -f # 实时查看日志"
|
||||
echo " $0 logs 100 # 查看最后 100 行"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
case "${1:-}" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
restart
|
||||
;;
|
||||
status)
|
||||
status
|
||||
;;
|
||||
logs)
|
||||
logs "${2:-}"
|
||||
;;
|
||||
help|--help|-h)
|
||||
help
|
||||
;;
|
||||
*)
|
||||
echo -e "${RED}错误:未知命令 '$1'${NC}"
|
||||
echo ""
|
||||
help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# 运行主函数
|
||||
main "$@"
|
||||
#!/bin/bash
|
||||
|
||||
# ========================================
|
||||
# Go 服务管理脚本
|
||||
# 用途:启动、停止、重启、查看状态
|
||||
# ========================================
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 配置
|
||||
SERVICE_DIR="/www/wwwroot/api.yunzer.cn"
|
||||
LOG_FILE="$SERVICE_DIR/go.log"
|
||||
PID_FILE="$SERVICE_DIR/go.pid"
|
||||
MAIN_FILE="$SERVICE_DIR/main.go"
|
||||
|
||||
# 检查服务目录
|
||||
if [ ! -d "$SERVICE_DIR" ]; then
|
||||
echo -e "${RED}错误:服务目录不存在: $SERVICE_DIR${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 main.go
|
||||
if [ ! -f "$MAIN_FILE" ]; then
|
||||
echo -e "${RED}错误:找不到 main.go: $MAIN_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 获取进程 ID
|
||||
get_pid() {
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
cat "$PID_FILE"
|
||||
else
|
||||
# 通过进程名查找
|
||||
pgrep -f "go run main.go" | head -n 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查服务是否运行
|
||||
is_running() {
|
||||
local pid=$(get_pid)
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 启动服务
|
||||
start() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}启动 Go 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
if is_running; then
|
||||
local pid=$(get_pid)
|
||||
echo -e "${YELLOW}服务已在运行中 (PID: $pid)${NC}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo -e "${YELLOW}切换到服务目录...${NC}"
|
||||
cd "$SERVICE_DIR"
|
||||
|
||||
echo -e "${YELLOW}启动服务...${NC}"
|
||||
nohup go run main.go > "$LOG_FILE" 2>&1 &
|
||||
local pid=$!
|
||||
echo $pid > "$PID_FILE"
|
||||
|
||||
# 等待服务启动
|
||||
sleep 2
|
||||
|
||||
if is_running; then
|
||||
echo -e "${GREEN}✓ 服务启动成功 (PID: $pid)${NC}"
|
||||
echo -e "${GREEN}✓ 日志文件: $LOG_FILE${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}查看日志:${NC}"
|
||||
echo -e " tail -f $LOG_FILE"
|
||||
echo ""
|
||||
echo -e "${YELLOW}查看最近日志:${NC}"
|
||||
tail -n 20 "$LOG_FILE"
|
||||
else
|
||||
echo -e "${RED}✗ 服务启动失败${NC}"
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
echo -e "${YELLOW}最近的错误日志:${NC}"
|
||||
tail -n 20 "$LOG_FILE"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 停止服务
|
||||
stop() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}停止 Go 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
if ! is_running; then
|
||||
echo -e "${YELLOW}服务未运行${NC}"
|
||||
rm -f "$PID_FILE"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local pid=$(get_pid)
|
||||
echo -e "${YELLOW}停止服务 (PID: $pid)...${NC}"
|
||||
|
||||
# 尝试优雅停止
|
||||
kill "$pid" 2>/dev/null || true
|
||||
|
||||
# 等待最多 10 秒
|
||||
local count=0
|
||||
while is_running && [ $count -lt 10 ]; do
|
||||
sleep 1
|
||||
count=$((count + 1))
|
||||
echo -n "."
|
||||
done
|
||||
echo ""
|
||||
|
||||
# 如果还在运行,强制停止
|
||||
if is_running; then
|
||||
echo -e "${YELLOW}强制停止服务...${NC}"
|
||||
kill -9 "$pid" 2>/dev/null || true
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
# 清理所有相关进程
|
||||
pkill -f "go run main.go" 2>/dev/null || true
|
||||
|
||||
rm -f "$PID_FILE"
|
||||
|
||||
if is_running; then
|
||||
echo -e "${RED}✗ 服务停止失败${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo -e "${GREEN}✓ 服务已停止${NC}"
|
||||
fi
|
||||
}
|
||||
|
||||
# 重启服务
|
||||
restart() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}重启 Go 服务${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
stop
|
||||
echo ""
|
||||
sleep 2
|
||||
start
|
||||
}
|
||||
|
||||
# 查看状态
|
||||
status() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}Go 服务状态${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
if is_running; then
|
||||
local pid=$(get_pid)
|
||||
echo -e "${GREEN}✓ 服务运行中${NC}"
|
||||
echo -e " PID: $pid"
|
||||
echo -e " 目录: $SERVICE_DIR"
|
||||
echo -e " 日志: $LOG_FILE"
|
||||
echo ""
|
||||
|
||||
# 显示进程信息
|
||||
echo -e "${YELLOW}进程信息:${NC}"
|
||||
ps aux | grep "$pid" | grep -v grep
|
||||
echo ""
|
||||
|
||||
# 显示端口监听
|
||||
echo -e "${YELLOW}端口监听:${NC}"
|
||||
netstat -tlnp 2>/dev/null | grep "$pid" || lsof -i -P -n | grep "$pid" || echo " 无法获取端口信息"
|
||||
echo ""
|
||||
|
||||
# 显示最近日志
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
echo -e "${YELLOW}最近日志(最后 10 行):${NC}"
|
||||
tail -n 10 "$LOG_FILE"
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}✗ 服务未运行${NC}"
|
||||
|
||||
# 检查是否有残留进程
|
||||
local pids=$(pgrep -f "go run main.go" || true)
|
||||
if [ -n "$pids" ]; then
|
||||
echo -e "${YELLOW}发现残留进程:${NC}"
|
||||
ps aux | grep "go run main.go" | grep -v grep
|
||||
echo ""
|
||||
echo -e "${YELLOW}清理残留进程:${NC}"
|
||||
echo " bash $0 stop"
|
||||
fi
|
||||
|
||||
# 显示最近日志
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
echo ""
|
||||
echo -e "${YELLOW}最近日志(最后 20 行):${NC}"
|
||||
tail -n 20 "$LOG_FILE"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 查看日志
|
||||
logs() {
|
||||
if [ ! -f "$LOG_FILE" ]; then
|
||||
echo -e "${RED}日志文件不存在: $LOG_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "-f" ] || [ "$1" = "--follow" ]; then
|
||||
echo -e "${YELLOW}实时查看日志(Ctrl+C 退出):${NC}"
|
||||
tail -f "$LOG_FILE"
|
||||
else
|
||||
local lines=${1:-50}
|
||||
echo -e "${YELLOW}最近 $lines 行日志:${NC}"
|
||||
tail -n "$lines" "$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
# 显示帮助
|
||||
help() {
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}Go 服务管理脚本${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
echo "用法: $0 {start|stop|restart|status|logs}"
|
||||
echo ""
|
||||
echo "命令:"
|
||||
echo " start - 启动服务"
|
||||
echo " stop - 停止服务"
|
||||
echo " restart - 重启服务"
|
||||
echo " status - 查看服务状态"
|
||||
echo " logs - 查看日志(默认最后 50 行)"
|
||||
echo " logs -f - 实时查看日志"
|
||||
echo " logs 100 - 查看最后 100 行日志"
|
||||
echo ""
|
||||
echo "示例:"
|
||||
echo " $0 start # 启动服务"
|
||||
echo " $0 restart # 重启服务"
|
||||
echo " $0 status # 查看状态"
|
||||
echo " $0 logs -f # 实时查看日志"
|
||||
echo " $0 logs 100 # 查看最后 100 行"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
case "${1:-}" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
restart
|
||||
;;
|
||||
status)
|
||||
status
|
||||
;;
|
||||
logs)
|
||||
logs "${2:-}"
|
||||
;;
|
||||
help|--help|-h)
|
||||
help
|
||||
;;
|
||||
*)
|
||||
echo -e "${RED}错误:未知命令 '$1'${NC}"
|
||||
echo ""
|
||||
help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# 运行主函数
|
||||
main "$@"
|
||||
|
||||
+93
-93
@@ -1,93 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 存储功能测试脚本
|
||||
|
||||
echo "================================"
|
||||
echo "存储功能测试"
|
||||
echo "================================"
|
||||
echo ""
|
||||
|
||||
# 颜色定义
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 测试结果
|
||||
PASS=0
|
||||
FAIL=0
|
||||
|
||||
# 测试函数
|
||||
test_api() {
|
||||
local name=$1
|
||||
local method=$2
|
||||
local url=$3
|
||||
local data=$4
|
||||
|
||||
echo -n "测试 $name ... "
|
||||
|
||||
if [ "$method" = "GET" ]; then
|
||||
response=$(curl -s -w "\n%{http_code}" "$url")
|
||||
else
|
||||
response=$(curl -s -w "\n%{http_code}" -X "$method" -H "Content-Type: application/json" -d "$data" "$url")
|
||||
fi
|
||||
|
||||
http_code=$(echo "$response" | tail -n1)
|
||||
body=$(echo "$response" | head -n-1)
|
||||
|
||||
if [ "$http_code" = "200" ] || [ "$http_code" = "201" ]; then
|
||||
echo -e "${GREEN}✓ PASS${NC}"
|
||||
PASS=$((PASS + 1))
|
||||
else
|
||||
echo -e "${RED}✗ FAIL${NC} (HTTP $http_code)"
|
||||
echo " 响应: $body"
|
||||
FAIL=$((FAIL + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
# 基础URL
|
||||
BASE_URL="http://localhost:8080"
|
||||
|
||||
echo "1. 测试存储配置API"
|
||||
echo "-------------------"
|
||||
|
||||
# 测试获取存储配置
|
||||
test_api "获取存储配置" "GET" "$BASE_URL/platform/storageConfig"
|
||||
|
||||
# 测试保存本地存储配置
|
||||
test_api "保存本地存储配置" "POST" "$BASE_URL/platform/saveStorageConfig" \
|
||||
'{"storage_type":"local"}'
|
||||
|
||||
echo ""
|
||||
echo "2. 测试文件上传"
|
||||
echo "-------------------"
|
||||
|
||||
# 创建测试文件
|
||||
TEST_FILE="/tmp/test_upload.txt"
|
||||
echo "This is a test file" > "$TEST_FILE"
|
||||
|
||||
# 测试文件上传(需要认证token,这里简化)
|
||||
echo -e "${YELLOW}注意: 文件上传需要认证token,请手动测试${NC}"
|
||||
|
||||
echo ""
|
||||
echo "3. 检查数据库表"
|
||||
echo "-------------------"
|
||||
|
||||
# 检查数据库表是否存在(需要MySQL连接信息)
|
||||
echo -e "${YELLOW}请手动检查数据库表: yz_system_storage_config${NC}"
|
||||
|
||||
echo ""
|
||||
echo "================================"
|
||||
echo "测试结果"
|
||||
echo "================================"
|
||||
echo -e "通过: ${GREEN}$PASS${NC}"
|
||||
echo -e "失败: ${RED}$FAIL${NC}"
|
||||
echo ""
|
||||
|
||||
if [ $FAIL -eq 0 ]; then
|
||||
echo -e "${GREEN}所有测试通过!${NC}"
|
||||
exit 0
|
||||
else
|
||||
echo -e "${RED}部分测试失败,请检查日志${NC}"
|
||||
exit 1
|
||||
fi
|
||||
#!/bin/bash
|
||||
|
||||
# 存储功能测试脚本
|
||||
|
||||
echo "================================"
|
||||
echo "存储功能测试"
|
||||
echo "================================"
|
||||
echo ""
|
||||
|
||||
# 颜色定义
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 测试结果
|
||||
PASS=0
|
||||
FAIL=0
|
||||
|
||||
# 测试函数
|
||||
test_api() {
|
||||
local name=$1
|
||||
local method=$2
|
||||
local url=$3
|
||||
local data=$4
|
||||
|
||||
echo -n "测试 $name ... "
|
||||
|
||||
if [ "$method" = "GET" ]; then
|
||||
response=$(curl -s -w "\n%{http_code}" "$url")
|
||||
else
|
||||
response=$(curl -s -w "\n%{http_code}" -X "$method" -H "Content-Type: application/json" -d "$data" "$url")
|
||||
fi
|
||||
|
||||
http_code=$(echo "$response" | tail -n1)
|
||||
body=$(echo "$response" | head -n-1)
|
||||
|
||||
if [ "$http_code" = "200" ] || [ "$http_code" = "201" ]; then
|
||||
echo -e "${GREEN}✓ PASS${NC}"
|
||||
PASS=$((PASS + 1))
|
||||
else
|
||||
echo -e "${RED}✗ FAIL${NC} (HTTP $http_code)"
|
||||
echo " 响应: $body"
|
||||
FAIL=$((FAIL + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
# 基础URL
|
||||
BASE_URL="http://localhost:8080"
|
||||
|
||||
echo "1. 测试存储配置API"
|
||||
echo "-------------------"
|
||||
|
||||
# 测试获取存储配置
|
||||
test_api "获取存储配置" "GET" "$BASE_URL/platform/storageConfig"
|
||||
|
||||
# 测试保存本地存储配置
|
||||
test_api "保存本地存储配置" "POST" "$BASE_URL/platform/saveStorageConfig" \
|
||||
'{"storage_type":"local"}'
|
||||
|
||||
echo ""
|
||||
echo "2. 测试文件上传"
|
||||
echo "-------------------"
|
||||
|
||||
# 创建测试文件
|
||||
TEST_FILE="/tmp/test_upload.txt"
|
||||
echo "This is a test file" > "$TEST_FILE"
|
||||
|
||||
# 测试文件上传(需要认证token,这里简化)
|
||||
echo -e "${YELLOW}注意: 文件上传需要认证token,请手动测试${NC}"
|
||||
|
||||
echo ""
|
||||
echo "3. 检查数据库表"
|
||||
echo "-------------------"
|
||||
|
||||
# 检查数据库表是否存在(需要MySQL连接信息)
|
||||
echo -e "${YELLOW}请手动检查数据库表: yz_system_storage_config${NC}"
|
||||
|
||||
echo ""
|
||||
echo "================================"
|
||||
echo "测试结果"
|
||||
echo "================================"
|
||||
echo -e "通过: ${GREEN}$PASS${NC}"
|
||||
echo -e "失败: ${RED}$FAIL${NC}"
|
||||
echo ""
|
||||
|
||||
if [ $FAIL -eq 0 ]; then
|
||||
echo -e "${GREEN}所有测试通过!${NC}"
|
||||
exit 0
|
||||
else
|
||||
echo -e "${RED}部分测试失败,请检查日志${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user