run_parser.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. # 生产环境数据解析脚本启动器
  3. echo "=== 学生操行分数据解析器(智能版本选择) ==="
  4. echo "当前时间: $(date)"
  5. echo "Python版本: $(python3 --version)"
  6. echo ""
  7. # 检查Python版本并选择合适的脚本
  8. python_version=$(python3 -c "import sys; print(sys.version_info.major * 10 + sys.version_info.minor)")
  9. echo "检测到Python版本: 3.$(($python_version % 10))"
  10. # 检查是否有typing模块
  11. has_typing=$(python3 -c "import typing" 2>/dev/null && echo "yes" || echo "no")
  12. if [ $python_version -ge 37 ] && [ "$has_typing" = "yes" ]; then
  13. SCRIPT_NAME="02_parse_score_data_fixed.py"
  14. echo "使用完整功能版本 (Python 3.7+)"
  15. elif [ $python_version -ge 36 ] && [ "$has_typing" = "yes" ]; then
  16. SCRIPT_NAME="02_parse_score_data_py36_compatible.py"
  17. echo "使用Python 3.6兼容版本"
  18. else
  19. SCRIPT_NAME="02_parse_score_data_py34_compatible.py"
  20. echo "使用Python 3.4+超兼容版本 (无typing模块)"
  21. fi
  22. # 检查依赖是否安装
  23. echo "检查依赖安装..."
  24. python3 -c "
  25. try:
  26. import pymysql
  27. import pandas
  28. import sqlalchemy
  29. print('✓ 所有依赖已安装')
  30. except ImportError as e:
  31. print('✗ 缺少依赖:', e)
  32. print('请运行: pip3 install --user -r requirements-prod.txt')
  33. exit(1)
  34. "
  35. if [ $? -ne 0 ]; then
  36. exit 1
  37. fi
  38. echo ""
  39. echo "启动数据解析进程..."
  40. echo "日志文件: 2.log"
  41. echo "进程ID将保存在: parser.pid"
  42. echo ""
  43. # 启动进程
  44. echo "启动脚本: $SCRIPT_NAME"
  45. nohup python3 "$SCRIPT_NAME" > 2.log 2>&1 &
  46. echo $! > parser.pid
  47. echo "进程已启动 (PID: $(cat parser.pid))"
  48. echo ""
  49. echo "查看运行状态:"
  50. echo " tail -f 2.log # 查看实时日志"
  51. echo " ps aux | grep python # 查看进程"
  52. echo " kill \$(cat parser.pid) # 停止进程"
  53. echo ""
  54. echo "日志分析:"
  55. echo " grep '成功' 2.log | wc -l # 成功记录数"
  56. echo " grep '失败' 2.log | wc -l # 失败记录数"
  57. echo " grep '解析完成' 2.log # 完成状态"