Files
hzdyjs/退学、休学、复学、毕业/PRODUCTION_DEPLOYMENT.md
T
2025-12-26 00:44:19 +08:00

221 lines
4.9 KiB
Markdown

# 学生状态变更处理系统 - 生产环境部署指南
## 📋 概述
本系统包含两个核心处理脚本,已修复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兼容修复版本