4.9 KiB
4.9 KiB
学生状态变更处理系统 - 生产环境部署指南
📋 概述
本系统包含两个核心处理脚本,已修复Ubuntu环境兼容性问题:
process_student_changes_fixed.sh- 学生状态变更处理(休学/退学/毕业)process_student_resume_fixed.sh- 学生复学处理
🚀 快速启动
1. 启动所有服务
cd /path/to/scripts
./control_scripts.sh startall
2. 检查运行状态
./control_scripts.sh statusall
3. 健康检查
./control_scripts.sh health all
4. 查看系统资源
./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)
# 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等)
🎯 控制脚本命令
基础操作
# 启动/停止/重启
./control_scripts.sh start changes # 启动状态变更处理
./control_scripts.sh stop resume # 停止复学处理
./control_scripts.sh restart changes # 重启状态变更处理
# 状态检查
./control_scripts.sh status changes # 查看状态变更脚本状态
./control_scripts.sh statusall # 查看所有脚本状态
批量操作
# 启动所有脚本
./control_scripts.sh startall
# 停止所有脚本
./control_scripts.sh stopall
# 重启所有脚本 (需要时使用)
./control_scripts.sh restart all
监控和维护
# 健康检查
./control_scripts.sh health changes # 检查单个脚本
./control_scripts.sh health all # 检查所有脚本
# 系统资源监控
./control_scripts.sh info
🔍 故障排除
常见问题
1. 脚本无法启动
症状: start 命令失败
检查:
# 检查脚本权限
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 显示未知状态
解决:
# 清理可能的残留文件
rm -f *.lock pids/*.pid
# 重启脚本
./control_scripts.sh restart all
3. 数据库连接失败
症状: 健康检查显示数据库连接失败 检查:
- 确认数据库服务运行
- 验证连接参数
- 检查网络连接
4. 日志文件过大
解决:
# 清理旧日志 (保留最近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
📊 监控要点
关键指标
- 脚本运行状态: 确保两个处理脚本都在运行
- 数据库连接: 定期检查数据库连接性
- 处理效率: 观察日志中的处理记录数和耗时
- 系统资源: CPU/内存/磁盘使用率
- 错误日志: 关注ERROR和WARN级别的日志
自动化监控脚本
#!/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
🔄 升级部署
停机升级
# 1. 停止所有服务
./control_scripts.sh stopall
# 2. 备份当前脚本
cp *.sh backup/
# 3. 部署新版本脚本
# (复制新版本文件)
# 4. 启动服务
./control_scripts.sh startall
# 5. 验证功能
./control_scripts.sh health all
热升级 (推荐)
# 逐个重启脚本,最小化服务中断
./control_scripts.sh restart changes
sleep 30
./control_scripts.sh restart resume
📞 支持
如遇到问题,请检查:
- 日志文件中的错误信息
- 系统资源使用情况
- 数据库连接状态
- 脚本执行权限
最后更新: 2025-12-26 版本: Ubuntu兼容修复版本