6.2 KiB
6.2 KiB
NAS监控系统项目任务目标
当前问题修复任务
高优先级任务
- 创建项目任务目标文件,跟踪修复进度
- 修复start_server.sh中的Bad substitution错误(第6行语法问题)
- 创建适用于虚拟环境的启动脚本版本
中优先级任务
- 测试修复后的脚本在Linux环境下的运行
- 优化Python依赖管理,支持虚拟环境
低优先级任务
- 添加更详细的错误处理和日志记录
- 创建Windows批处理脚本版本
问题分析
当前遇到的问题:
- Bad substitution错误:shell脚本第6行存在语法问题
- Python环境问题:需要支持虚拟环境运行
- 跨平台兼容性:需要同时支持Linux和Windows
解决方案:
- 修复shell脚本语法错误
- 创建支持虚拟环境的启动脚本
- 提供多种启动方式的选择
项目结构
nasweb/
├── README.md
├── index.html # 前端页面
├── system_info.py # 系统信息API服务
├── start_server.py # Python启动脚本(原版)
├── start_server.sh # Linux shell启动脚本(已修复)
├── start_server_venv.py # Python启动脚本(虚拟环境版本)
├── start_server_venv.sh # Linux shell启动脚本(虚拟环境版本)
├── requirements.txt # Python依赖包列表
├── 项目任务目标.md # 本文件
├── image/ # 图片资源
├── logs/ # 日志文件
└── venv/ # 虚拟环境目录(运行时创建)
更新日志
- 2024-01-XX: 创建任务目标文件
- 2024-01-XX: 修复start_server.sh中的Bad substitution错误
- 2024-01-XX: 创建虚拟环境版本的启动脚本
- 2024-01-XX: 添加requirements.txt依赖管理文件
- 2024-01-XX: 修复Python检测逻辑,解决Linux环境下python3命令检测问题
最新修复 (2025-01-09)
修复的问题:
- ✅ Python检测问题:系统中python3存在但
command -v python3检测失败 - ✅ Shell兼容性问题:Linux环境下用sh执行脚本时source命令不可用
- ✅ 硬盘使用量检测问题:Linux环境下硬盘使用量显示为0
- ✅ 进程终止问题:Ctrl+C退出后HTTP端口未正确关闭
- ✅ 端口配置问题:需要修改API和HTTP服务端口
- ✅ 硬盘检测范围问题:需要检测/vol1应用存储目录
- ✅ 硬盘容量显示错误:显示物理硬盘总容量而非分区容量
- ✅ 信号处理语法错误:修复trap命令在某些shell环境下的语法问题
- ✅ 端口占用问题:添加端口检查和自动清理机制
- ✅ 系统服务部署:创建systemd service配置实现开机自启和后台运行
- ✅ systemd配置错误修复:修复ExecStart重复字段和sudo使用问题
- ✅ 服务用户配置优化:改为使用root用户运行,避免用户组权限问题
- ✅ GIF文件显示修复:更新文件列表匹配实际存在的GIF文件,解决图片显示问题
- ✅ 动态图片扫描:实现启动时自动扫描image目录,动态获取图片文件列表
- ✅ 端口配置文件:实现从config.json读取端口配置,支持动态端口设置
- ✅ GitHub仓库部署:将项目推送到GitHub仓库 https://github.com/yumo666666/nasweb.git
- ✅ 虚拟环境启动脚本端口配置:修复start_server_venv.py中的硬编码端口,支持从config.json读取端口配置
改进内容:
1. Python检测修复
- 改进Python检测逻辑:使用
which python3和python3 --version双重检测 - 修复start_server_venv.sh和start_server.sh中的Python检测问题
- 增强用户体验:添加Python版本显示和安装建议
2. Shell兼容性修复
- 将
source命令替换为.命令,提高shell兼容性 - 在cleanup函数中添加deactivate命令的存在性检查
3. 硬盘使用量检测修复
- 扩展正则匹配:支持整盘分区格式(如sda)和nvme设备格式(如nvme0n1)
- 改进挂载点映射:将设备路径映射改为挂载点映射
- 添加根分区处理:当part_map中没有对应挂载点时,检查根分区
- 增强错误处理:添加异常捕获和调试信息
- 创建测试工具:test_disk_usage.py用于验证硬盘检测功能
4. 进程管理和端口配置修复
- 改进cleanup函数:添加强制终止逻辑(kill -9)和残留进程清理
- 修改端口配置:API端口改为8002,HTTP端口改为8003
- 更新前端配置:修改index.html中的API端口引用
- 同步两个启动脚本的端口配置
5. 存储检测增强
- 添加/vol1目录检测:专门检测应用存储目录的使用情况
- 支持独立挂载点:将/vol1作为独立磁盘显示
- 改进存储信息展示:区分系统盘和应用存储盘
- 修复容量显示错误:改为显示分区实际容量而非物理硬盘总容量
- 优化分区识别:直接遍历挂载分区,过滤特殊文件系统
- 改进显示名称:为不同类型的挂载点设置合适的显示名称
6. 用户体验改进
- 添加详细的错误提示和解决建议
- 改进日志输出格式
- 增强脚本的健壮性和兼容性
7. 信号处理优化
- 修复trap命令语法兼容性问题
- 改进SIGINT/SIGTERM信号处理
- 确保在不同shell环境下正常工作
8. 端口管理增强
- 添加端口占用检查机制
- 实现自动进程清理功能
- 防止端口冲突导致的启动失败
9. 系统服务集成
- 创建systemd service配置文件
- 实现开机自启动功能
- 提供服务管理脚本
- 支持后台运行和自动重启
- 完整的部署和故障排除文档
使用说明
方式1:使用原版启动脚本
# Linux
sudo sh ./start_server.sh
# Windows/Linux
python start_server.py
方式2:使用虚拟环境版本(推荐)
# Linux
sh ./start_server_venv.sh
# Windows/Linux
python start_server_venv.py
方式3:手动使用虚拟环境
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
# Linux/macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 运行服务
python system_info.py --serve --port 8001 &
python -m http.server 8000