Files
2025-12-26 00:44:19 +08:00

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

📊 监控要点

关键指标

  1. 脚本运行状态: 确保两个处理脚本都在运行
  2. 数据库连接: 定期检查数据库连接性
  3. 处理效率: 观察日志中的处理记录数和耗时
  4. 系统资源: CPU/内存/磁盘使用率
  5. 错误日志: 关注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

📞 支持

如遇到问题,请检查:

  1. 日志文件中的错误信息
  2. 系统资源使用情况
  3. 数据库连接状态
  4. 脚本执行权限

最后更新: 2025-12-26 版本: Ubuntu兼容修复版本