124 lines
3.2 KiB
Bash
Executable File
124 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
||
# 服务验证脚本 - 检查服务是否正确设置和运行
|
||
|
||
echo "🔍 文件传输服务验证脚本"
|
||
echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "="
|
||
|
||
# 检查当前目录
|
||
if [ ! -f "app.py" ]; then
|
||
echo "❌ 请在fileshare目录中运行此脚本"
|
||
echo "💡 cd fileshare && ./verify_setup.sh"
|
||
exit 1
|
||
fi
|
||
|
||
echo "📂 检查文件结构..."
|
||
|
||
# 检查必需文件
|
||
files=("app.py" "cli.py" "requirements.txt" "static/index.html" "static/style.css" "static/app.js")
|
||
missing_files=()
|
||
|
||
for file in "${files[@]}"; do
|
||
if [ -f "$file" ]; then
|
||
echo "✅ $file"
|
||
else
|
||
echo "❌ 缺少文件: $file"
|
||
missing_files+=("$file")
|
||
fi
|
||
done
|
||
|
||
if [ ${#missing_files[@]} -ne 0 ]; then
|
||
echo
|
||
echo "⚠️ 发现 ${#missing_files[@]} 个缺失文件,请先运行: python fix_paths.py"
|
||
exit 1
|
||
fi
|
||
|
||
echo
|
||
echo "🔧 检查Python依赖..."
|
||
|
||
# 检查Python是否安装
|
||
if ! command -v python &> /dev/null && ! command -v python3 &> /dev/null; then
|
||
echo "❌ Python 未安装"
|
||
exit 1
|
||
else
|
||
echo "✅ Python 已安装"
|
||
fi
|
||
|
||
# 检查pip是否安装
|
||
if ! command -v pip &> /dev/null && ! command -v pip3 &> /dev/null; then
|
||
echo "❌ pip 未安装"
|
||
exit 1
|
||
else
|
||
echo "✅ pip 已安装"
|
||
fi
|
||
|
||
# 检查虚拟环境(可选)
|
||
if [ -n "$VIRTUAL_ENV" ]; then
|
||
echo "✅ 当前在虚拟环境中: $(basename $VIRTUAL_ENV)"
|
||
else
|
||
echo "ℹ️ 未使用虚拟环境(可选)"
|
||
fi
|
||
|
||
echo
|
||
echo "📦 检查依赖包..."
|
||
|
||
# 检查主要依赖
|
||
python_cmd="python"
|
||
if command -v python3 &> /dev/null; then
|
||
python_cmd="python3"
|
||
fi
|
||
|
||
required_packages=("fastapi" "uvicorn" "httpx" "click" "rich")
|
||
missing_packages=()
|
||
|
||
for package in "${required_packages[@]}"; do
|
||
if $python_cmd -c "import $package" 2>/dev/null; then
|
||
echo "✅ $package"
|
||
else
|
||
echo "❌ 缺少包: $package"
|
||
missing_packages+=("$package")
|
||
fi
|
||
done
|
||
|
||
if [ ${#missing_packages[@]} -ne 0 ]; then
|
||
echo
|
||
echo "⚠️ 发现 ${#missing_packages[@]} 个缺失依赖包,请运行:"
|
||
echo " pip install -r requirements.txt"
|
||
echo
|
||
fi
|
||
|
||
echo
|
||
echo "🚀 启动测试..."
|
||
|
||
# 检查端口是否被占用
|
||
if command -v lsof &> /dev/null; then
|
||
if lsof -i :8000 > /dev/null 2>&1; then
|
||
echo "⚠️ 端口 8000 已被占用"
|
||
echo "ℹ️ 当前占用进程:"
|
||
lsof -i :8000
|
||
echo
|
||
echo "💡 可以使用其他端口: PORT=8001 python app.py"
|
||
else
|
||
echo "✅ 端口 8000 可用"
|
||
fi
|
||
fi
|
||
|
||
# 提供启动建议
|
||
echo
|
||
echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "="
|
||
echo "🎉 验证完成!"
|
||
echo
|
||
|
||
if [ ${#missing_files[@]} -eq 0 ] && [ ${#missing_packages[@]} -eq 0 ]; then
|
||
echo "✅ 所有检查都通过,可以启动服务了!"
|
||
echo
|
||
echo "🚀 推荐启动方式:"
|
||
echo " 1. 直接启动: python app.py"
|
||
echo " 2. 开发模式: uvicorn app:app --reload"
|
||
echo " 3. Docker启动: ./start.sh"
|
||
echo
|
||
echo "🌐 启动后访问: http://localhost:8000"
|
||
echo
|
||
echo "🧪 启动后可运行测试: python test_server.py"
|
||
else
|
||
echo "⚠️ 请先解决上述问题,然后重新运行此脚本"
|
||
fi |