#!/bin/bash # 生产环境数据解析脚本启动器 echo "=== 学生操行分数据解析器(智能版本选择) ===" echo "当前时间: $(date)" echo "Python版本: $(python3 --version)" echo "" # 检查Python版本并选择合适的脚本 python_version=$(python3 -c "import sys; print(sys.version_info.major * 10 + sys.version_info.minor)") echo "检测到Python版本: 3.$(($python_version % 10))" # 检查是否有typing模块 has_typing=$(python3 -c "import typing" 2>/dev/null && echo "yes" || echo "no") if [ $python_version -ge 37 ] && [ "$has_typing" = "yes" ]; then SCRIPT_NAME="02_parse_score_data_fixed.py" echo "使用完整功能版本 (Python 3.7+)" elif [ $python_version -ge 36 ] && [ "$has_typing" = "yes" ]; then SCRIPT_NAME="02_parse_score_data_py36_compatible.py" echo "使用Python 3.6兼容版本" else SCRIPT_NAME="02_parse_score_data_py34_compatible.py" echo "使用Python 3.4+超兼容版本 (无typing模块)" fi # 检查依赖是否安装 echo "检查依赖安装..." python3 -c " try: import pymysql import pandas import sqlalchemy print('✓ 所有依赖已安装') except ImportError as e: print('✗ 缺少依赖:', e) print('请运行: pip3 install --user -r requirements-prod.txt') exit(1) " if [ $? -ne 0 ]; then exit 1 fi echo "" echo "启动数据解析进程..." echo "日志文件: 2.log" echo "进程ID将保存在: parser.pid" echo "" # 启动进程 echo "启动脚本: $SCRIPT_NAME" nohup python3 "$SCRIPT_NAME" > 2.log 2>&1 & echo $! > parser.pid echo "进程已启动 (PID: $(cat parser.pid))" echo "" echo "查看运行状态:" echo " tail -f 2.log # 查看实时日志" echo " ps aux | grep python # 查看进程" echo " kill \$(cat parser.pid) # 停止进程" echo "" echo "日志分析:" echo " grep '成功' 2.log | wc -l # 成功记录数" echo " grep '失败' 2.log | wc -l # 失败记录数" echo " grep '解析完成' 2.log # 完成状态"