Files
nasweb/项目任务目标.md
2025-09-12 17:32:08 +08:00

6.2 KiB
Raw Permalink Blame History

NAS监控系统项目任务目标

当前问题修复任务

高优先级任务

  • 创建项目任务目标文件,跟踪修复进度
  • 修复start_server.sh中的Bad substitution错误第6行语法问题
  • 创建适用于虚拟环境的启动脚本版本

中优先级任务

  • 测试修复后的脚本在Linux环境下的运行
  • 优化Python依赖管理支持虚拟环境

低优先级任务

  • 添加更详细的错误处理和日志记录
  • 创建Windows批处理脚本版本

问题分析

当前遇到的问题:

  1. Bad substitution错误shell脚本第6行存在语法问题
  2. Python环境问题:需要支持虚拟环境运行
  3. 跨平台兼容性需要同时支持Linux和Windows

解决方案:

  1. 修复shell脚本语法错误
  2. 创建支持虚拟环境的启动脚本
  3. 提供多种启动方式的选择

项目结构

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)

修复的问题:

  1. Python检测问题系统中python3存在但command -v python3检测失败
  2. Shell兼容性问题Linux环境下用sh执行脚本时source命令不可用
  3. 硬盘使用量检测问题Linux环境下硬盘使用量显示为0
  4. 进程终止问题Ctrl+C退出后HTTP端口未正确关闭
  5. 端口配置问题需要修改API和HTTP服务端口
  6. 硬盘检测范围问题:需要检测/vol1应用存储目录
  7. 硬盘容量显示错误:显示物理硬盘总容量而非分区容量
  8. 信号处理语法错误修复trap命令在某些shell环境下的语法问题
  9. 端口占用问题:添加端口检查和自动清理机制
  10. 系统服务部署创建systemd service配置实现开机自启和后台运行
  11. systemd配置错误修复修复ExecStart重复字段和sudo使用问题
  12. 服务用户配置优化改为使用root用户运行避免用户组权限问题
  13. GIF文件显示修复更新文件列表匹配实际存在的GIF文件解决图片显示问题
  14. 动态图片扫描实现启动时自动扫描image目录动态获取图片文件列表
  15. 端口配置文件实现从config.json读取端口配置支持动态端口设置
  16. GitHub仓库部署将项目推送到GitHub仓库 https://github.com/yumo666666/nasweb.git
  17. 虚拟环境启动脚本端口配置修复start_server_venv.py中的硬编码端口支持从config.json读取端口配置

改进内容:

1. Python检测修复

  • 改进Python检测逻辑使用which python3python3 --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端口改为8002HTTP端口改为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