# 学生状态变更处理系统 - 生产环境部署指南 ## 📋 概述 本系统包含两个核心处理脚本,已修复Ubuntu环境兼容性问题: - `process_student_changes_fixed.sh` - 学生状态变更处理(休学/退学/毕业) - `process_student_resume_fixed.sh` - 学生复学处理 ## 🚀 快速启动 ### 1. 启动所有服务 ```bash cd /path/to/scripts ./control_scripts.sh startall ``` ### 2. 检查运行状态 ```bash ./control_scripts.sh statusall ``` ### 3. 健康检查 ```bash ./control_scripts.sh health all ``` ### 4. 查看系统资源 ```bash ./control_scripts.sh info ``` ## 📁 文件结构 ``` /scripts/ ├── control_scripts.sh # 生产环境控制脚本 ├── process_student_changes_fixed.sh # 状态变更处理脚本 ├── process_student_resume_fixed.sh # 复学处理脚本 ├── data.conf # 配置文件 ├── logs/ # 控制脚本日志目录 │ └── control_scripts_YYYYMMDD.log └── student_status_change/ # 处理脚本日志目录 └── process_student_*_YYYYMMDD_HHMMSS.log ``` ## ⚙️ 配置要求 ### 数据库配置 (data.conf) ```bash # Database configuration DB_HOST="your_db_host" DB_PORT="3306" DB_NAME="your_db_name" DB_USER="your_db_user" DB_PASS="your_db_password" # Processing configuration BATCH_SIZE=100 # 每批处理记录数 MAX_RETRY=3 # 最大重试次数 RETRY_DELAY=5 # 重试间隔(秒) CYCLE_INTERVAL=600 # 处理周期间隔(秒) ``` ### 系统要求 - Ubuntu 18.04+ / CentOS 7+ - Bash 4.0+ - MySQL 5.7+ / MariaDB 10.0+ - 标准系统工具 (ps, kill, chmod等) ## 🎯 控制脚本命令 ### 基础操作 ```bash # 启动/停止/重启 ./control_scripts.sh start changes # 启动状态变更处理 ./control_scripts.sh stop resume # 停止复学处理 ./control_scripts.sh restart changes # 重启状态变更处理 # 状态检查 ./control_scripts.sh status changes # 查看状态变更脚本状态 ./control_scripts.sh statusall # 查看所有脚本状态 ``` ### 批量操作 ```bash # 启动所有脚本 ./control_scripts.sh startall # 停止所有脚本 ./control_scripts.sh stopall # 重启所有脚本 (需要时使用) ./control_scripts.sh restart all ``` ### 监控和维护 ```bash # 健康检查 ./control_scripts.sh health changes # 检查单个脚本 ./control_scripts.sh health all # 检查所有脚本 # 系统资源监控 ./control_scripts.sh info ``` ## 🔍 故障排除 ### 常见问题 #### 1. 脚本无法启动 **症状**: `start` 命令失败 **检查**: ```bash # 检查脚本权限 ls -la *.sh # 检查配置文件 cat data.conf # 检查数据库连接 mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME -e "SELECT 1;" ``` #### 2. 脚本状态显示异常 **症状**: `status` 显示未知状态 **解决**: ```bash # 清理可能的残留文件 rm -f *.lock pids/*.pid # 重启脚本 ./control_scripts.sh restart all ``` #### 3. 数据库连接失败 **症状**: 健康检查显示数据库连接失败 **检查**: - 确认数据库服务运行 - 验证连接参数 - 检查网络连接 #### 4. 日志文件过大 **解决**: ```bash # 清理旧日志 (保留最近7天) find logs/ -name "*.log" -mtime +7 -delete find student_status_change/ -name "*.log" -mtime +7 -delete ``` ### 日志位置 - **控制脚本日志**: `logs/control_scripts_YYYYMMDD.log` - **处理脚本日志**: `student_status_change/process_student_*_YYYYMMDD_HHMMSS.log` ## 📊 监控要点 ### 关键指标 1. **脚本运行状态**: 确保两个处理脚本都在运行 2. **数据库连接**: 定期检查数据库连接性 3. **处理效率**: 观察日志中的处理记录数和耗时 4. **系统资源**: CPU/内存/磁盘使用率 5. **错误日志**: 关注ERROR和WARN级别的日志 ### 自动化监控脚本 ```bash #!/bin/bash # 监控脚本示例 SCRIPT_DIR="/path/to/scripts" LOG_FILE="/var/log/student_monitor.log" echo "$(date): 检查脚本状态" >> "$LOG_FILE" cd "$SCRIPT_DIR" # 检查脚本状态 if ! ./control_scripts.sh health all >> "$LOG_FILE" 2>&1; then echo "$(date): 健康检查失败,发送告警" >> "$LOG_FILE" # 发送告警邮件/短信等 fi ``` ## 🔄 升级部署 ### 停机升级 ```bash # 1. 停止所有服务 ./control_scripts.sh stopall # 2. 备份当前脚本 cp *.sh backup/ # 3. 部署新版本脚本 # (复制新版本文件) # 4. 启动服务 ./control_scripts.sh startall # 5. 验证功能 ./control_scripts.sh health all ``` ### 热升级 (推荐) ```bash # 逐个重启脚本,最小化服务中断 ./control_scripts.sh restart changes sleep 30 ./control_scripts.sh restart resume ``` ## 📞 支持 如遇到问题,请检查: 1. 日志文件中的错误信息 2. 系统资源使用情况 3. 数据库连接状态 4. 脚本执行权限 --- **最后更新**: 2025-12-26 **版本**: Ubuntu兼容修复版本