rack:固件下载目录自动清理(每小时,FwStore.prune)
- 固件库里登记过的(界面上传)不自动删;没登记的(ota_push.py 直传、台架镜像)放满 7 天删; 上传中断的 .tmp 1 小时删;非 <16 hex>.bin / .tmp 的文件名一律不碰 - 板子下载一次几秒就完、回滚用的是板上另一个槽,删旧文件不影响任何板子 - main.py:有 --fw-dir 时起清理循环,出错只记日志;test_firmware.py 加 2 例,共 41 例(本机 + 服务器) - 已部署;本机模拟板实测放一个 8 天前的孤儿镜像,启动即被清掉 Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
+4
-1
@@ -12,7 +12,7 @@
|
||||
| 目录 | 内容 |
|
||||
|---|---|
|
||||
| `backend/prrack/` | `protocol.py` 板侧协议镜像(命令白名单 / 事件表 / seq)· `bus.py` MQTT 抽象(paho / 进程内假 broker)· `hub.py` 核心 · `recovery.py` 自动恢复 · `db.py` 存储 · `firmware.py` 固件库 + OTA 命令 · `api.py` HTTP+WS · `simboard.py` 模拟板子 · `main.py` 入口 |
|
||||
| `backend/tests/` | 39 例(pytest),本机与服务器(Python 3.8)都跑 |
|
||||
| `backend/tests/` | 41 例(pytest),本机与服务器(Python 3.8)都跑 |
|
||||
| `frontend/` | Vue3 + Vite + Element Plus + ECharts(按需引入) |
|
||||
| `deploy/` | `deploy.sh` 一键部署 · systemd unit · 每日备份 |
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
不勾就只下载 + 切分区,下次复位生效;同一个镜像已就绪时再推一次并勾重启,不重下。
|
||||
- 新固件 120 s 内连不上 broker 板子自己回滚,界面显示「回滚过:版本号」,事件里有「固件升级(回滚)」。
|
||||
- 命令行等价物:`firmware/tools/ota_push.py`(不经过后端,直接用 broker 后端账号)。
|
||||
- **下载目录自动清理**(后端每小时一次,`FwStore.prune`):固件库里**登记过的不删**(界面上传的,要删用删除按钮);
|
||||
没登记的(`ota_push.py` 直接传的、台架镜像)放满 **7 天**删;上传中断的 `.tmp` 1 小时删;别的文件名一律不碰。
|
||||
板子下载一次几秒就完,回滚用的是板子自己另一个槽,所以删掉旧文件不影响任何一块板。
|
||||
|
||||
## 本机开发
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户