1
This commit is contained in:
179
快速更新指南.md
Normal file
179
快速更新指南.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# 快速更新指南 - 修复会话过期问题
|
||||
|
||||
## 🎯 本次更新解决的问题
|
||||
|
||||
**症状:** 程序运行几小时后出现:
|
||||
```
|
||||
[WARNING] 未能提取到成绩信息,返回原始文本
|
||||
[INFO] 成绩无变化(共 0 门课程)
|
||||
```
|
||||
|
||||
**原因:** 登录会话过期,需要重新登录
|
||||
|
||||
**解决:** ✅ 自动检测并重新登录
|
||||
|
||||
---
|
||||
|
||||
## 📦 方式1:快速更新(推荐)
|
||||
|
||||
### 在本地打包
|
||||
```bash
|
||||
cd /mnt/e/50425/Documents/Github/GPA_Monitoring
|
||||
chmod +x 打包.sh
|
||||
./打包.sh
|
||||
```
|
||||
|
||||
### 上传到服务器
|
||||
```bash
|
||||
scp gpa_monitor.tar.gz 用户名@服务器IP:~/
|
||||
```
|
||||
|
||||
### 在服务器上更新
|
||||
```bash
|
||||
# 停止服务
|
||||
systemctl stop grade-monitor
|
||||
|
||||
# 备份
|
||||
cd ~/grade_monitor
|
||||
cp monitor.py monitor.py.backup.$(date +%Y%m%d)
|
||||
|
||||
# 解压更新
|
||||
tar -xzf ~/gpa_monitor.tar.gz -C ~/grade_monitor
|
||||
|
||||
# 赋予权限
|
||||
chmod +x diagnose.sh
|
||||
|
||||
# 重启服务
|
||||
systemctl restart grade-monitor
|
||||
|
||||
# 查看日志(确认自动重新登录功能)
|
||||
tail -f monitor.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 方式2:仅更新 monitor.py
|
||||
|
||||
如果只想更新主程序文件:
|
||||
|
||||
### 在本地
|
||||
```bash
|
||||
# WSL中
|
||||
cd /mnt/e/50425/Documents/Github/GPA_Monitoring
|
||||
scp monitor.py 用户名@服务器IP:~/grade_monitor/
|
||||
```
|
||||
|
||||
### 在服务器上
|
||||
```bash
|
||||
systemctl stop grade-monitor
|
||||
systemctl start grade-monitor
|
||||
tail -f ~/grade_monitor/monitor.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ 验证更新成功
|
||||
|
||||
查看日志,应该能看到:
|
||||
|
||||
### 正常运行
|
||||
```
|
||||
[INFO] 开始新一轮检查
|
||||
[INFO] 获取成绩页面...
|
||||
[DEBUG] 找到成绩表格
|
||||
[INFO] 成功提取成绩信息,共 17 行
|
||||
[INFO] 共解析到 15 门课程
|
||||
[INFO] 成绩无变化(共 15 门课程)
|
||||
```
|
||||
|
||||
### 会话过期时自动处理
|
||||
```
|
||||
[WARNING] 检测到会话过期,尝试重新登录...
|
||||
[INFO] 开始登录统一身份认证...
|
||||
[INFO] 登录成功!成功访问成绩页面
|
||||
[INFO] 重新登录成功,继续监控
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 故障诊断
|
||||
|
||||
如果更新后仍有问题:
|
||||
|
||||
```bash
|
||||
cd ~/grade_monitor
|
||||
|
||||
# 运行诊断工具
|
||||
./diagnose.sh
|
||||
|
||||
# 或手动测试
|
||||
python3 monitor.py --test --debug
|
||||
|
||||
# 查看生成的调试文件
|
||||
ls -lh debug_page.html
|
||||
cat .last_grade_content.txt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 更新内容详细列表
|
||||
|
||||
1. **会话过期自动重新登录** (monitor.py 第697-718行)
|
||||
- 检测 `LOGIN_REQUIRED` 状态
|
||||
- 自动调用 `login()` 重新登录
|
||||
- 记录详细日志
|
||||
|
||||
2. **改进成绩提取** (monitor.py 第286-370行)
|
||||
- 检测登录页面
|
||||
- 支持多种表格选择器
|
||||
- 自动保存 debug_page.html
|
||||
- 添加详细调试日志
|
||||
|
||||
3. **改进课程解析** (monitor.py 第375-405行)
|
||||
- 检测登录失效
|
||||
- 识别未解析的HTML
|
||||
- 统计课程数量
|
||||
|
||||
4. **新增调试模式**
|
||||
- `python3 monitor.py --debug`
|
||||
- 显示详细运行信息
|
||||
|
||||
5. **新增诊断工具**
|
||||
- `diagnose.sh` - 自动检测并给出建议
|
||||
- `故障排查指南.md` - 详细排查步骤
|
||||
|
||||
---
|
||||
|
||||
## 💡 最佳实践
|
||||
|
||||
1. **定期检查日志**(每天1-2次即可)
|
||||
```bash
|
||||
tail -n 50 ~/grade_monitor/monitor.log
|
||||
```
|
||||
|
||||
2. **不要频繁重启服务**
|
||||
- 新版本会自动处理会话过期
|
||||
- 只在真正出问题时才重启
|
||||
|
||||
3. **保留备份**
|
||||
```bash
|
||||
# 每次更新前都会自动备份
|
||||
ls -lh ~/grade_monitor/monitor.py.backup.*
|
||||
```
|
||||
|
||||
4. **合理设置检查间隔**
|
||||
- 建议 120-300 秒
|
||||
- 避免触发学校系统限流
|
||||
|
||||
---
|
||||
|
||||
## 🆘 需要帮助?
|
||||
|
||||
1. 先运行诊断工具:`./diagnose.sh`
|
||||
2. 查看故障排查指南:`cat 故障排查指南.md`
|
||||
3. 查看详细修复说明:`cat 修复说明_2026-01-21.md`
|
||||
|
||||
---
|
||||
|
||||
**更新日期:** 2026-01-21
|
||||
**版本:** v2.0 - 自动会话恢复版
|
||||
Reference in New Issue
Block a user