收起左侧

更新 清理精灵 FnClearup v0.9.1— fnOS 上的磁盘空间救星

26
回复
2530
查看
[ 复制链接 ]

8

主题

27

回帖

0

牛值

系统先锋体验团🛩️

2026-5-31 18:40:48 显示全部楼层 阅读模式
🚀 清理精灵 FnClearup v0.7.2 — fnOS 上的磁盘空间救星

特别提醒:为删除文件,使用root权限用户。



## v0.9.1 更新

- **修复:P0 文件名截断损坏** — `app.js` / `empty_dir.js` / `temp.js` 三处 trash 重命名用 `slice(0, ext.length)` 保留 stem 前 N 字符(例:`data.bin.gz` → `dat_1.gz`),改为 `slice(0, -ext.length)` 正确去掉扩展名
  - `app.js` 删 29 行重复 `moveToTrash`,统一 import from `trash.js`
- **修复:execCmd 超时不杀进程** — `spawn({timeout})` 超时后只发 SIGTERM 不强杀,`rm -rf` 在 fuse 挂载点挂死后事件循环永久阻塞。改为 SIGTERM → 5s 宽限期 → SIGKILL 兜底
- **修复:bigfiles sibling threshold 测试假阳性** — 原测试永远不触发阈值(fixture 只有 1 文件),断言 `typeof === 'boolean'` 空通过。新增独立测试 `tests/test_bigfiles_sibling_threshold.js`:环境变量 `TRM_FNCLEARUP_SIBLING_THRESHOLD=5` + 7 entry fixture + 断言 `skipped_subtree===true`
- **测试覆盖:84 → 85**(含 standalone sibling threshold 测试)

## v0.9.0 更新

- **🐳 新增:Docker 清理 Tab** — 一键清理已停止容器 (`exited`/`created`/`dead` 状态) 和 Docker Build Cache
  - 容器 ID 严格 regex 校验(`^[a-f0-9]{12,64}$`),防止参数注入
  - `dry_run: true` 默认强制预览,删除前必显式确认
  - `/var/run/docker.sock` 不存在 → 干净降级到「Docker 未检测到」独立 panel
- **🐘 新增:大文件查找器 Tab** — 跨 `/vol*` 卷扫描 ≥ 100 MB 文件 Top 100,支持 minSize/topN/depth 三档过滤,5min hard timeout + setImmediate yield 可在 ~1s 内停止
- **🧹 修复:sysclean HOME 硬编码**(P0 真 bug)— `root` 跑只清 root 缓存,多用户 NAS 漏清理其他用户的 npm/pip/uv/Chromium 等
  - `getUserHomes()` 自动发现所有 `/vol<N>/<UID>` 数字 UID 目录
  - USER_CACHE_TEMPLATES × N 用户展开成独立清理项
  - `excludeSingleChildNames` 防重复
- **测试覆盖:60 → 78**(+18 新增,含恶意 ID 注入防护测试)

## v0.8.1 更新

- **修复:定时清理全面代码审计** — **发现并修复 8 项 P1 问题,涵盖 API 字段不匹配、路径提取错误、HTML 属性注入等

  - **应用残余不清理** — `/api/scan` 返回 `orphan` 对象数组未取 `.path`,全被 `isSafePath` 过滤
  - **Docker 清理不工作** — `imgRes.data?.unused` 路径错误(应为 `?.images?.unused`),`volRes.data?.orphans` 路径错误(应为 `?.volumes?.orphan`),`netRes.data?.networks` 是对象不是数组 → 崩溃
  - **Temp 清理不工作** — 用 `f.atime` 过滤但 API 返 `age_hours`,`delRes.data?.deleted` 是数组当数字
  - **Trash 清理不工作** — `data.totalItems/size` 不存在(实际在 `data.totals`),`cleanRes.data?.cleaned` 不存在(实际是 `deleted.length`)
  - **镜像删除计数为 0** — 读 `deleted` 但 API 返 `total`
  - **磁盘清理死代码** — 读 `orphans` 但 API 返 `vol02_dirs`
  - **🧾 文件清单按钮无反应** — `JSON.stringify` 双引号闭合 HTML `*` 属性
  - **3 处非原子写入** — `writeFileSync` 直接写,崩溃丢数据
  - **mkdirSync 无异常保护** — 磁盘满时崩溃
  - **isRunning 锁无 finally** — 异常时永久锁死定时器

- **新增:定时清理计划** — 支持 5 种清理类型(应用残余/网盘挂载/Docker/tmp/回收站),可配置时间、间隔,自动执行并生成清理报告
- **新增:定时清理前端配置** — 独立设置面板,各清理类型可独立启停,支持子选项(Docker 镜像/卷/网络分别控制)
- **新增:定时清理执行报告** — 每次清理自动生成详细报告(清理项/错误/耗时),保留历史记录与报告文件
- **密码和配置的0.7.x遗留问题修复** — 代码审计 14 项 P0/P1/P2 全面修复


## v0.7.12 更新

- **新增:去重结果前端分页** — 大量重复文件时分批加载,新增「加载更多」按钮
- **优化:去重 KPI 卡片显示总数** — 后端返回总匹配组数,前端实时展示

## v0.7.11 更新

- **修复:系统清理忽略 `/boot` 目录** — 移除 SCAN_TARGETS 中的 `old-kernels` 项(vmlinuz/initrd.img/System.map 等关键内核文件),避免误删导致系统无法启动。内核清理应通过 `apt` 单独处理



"v0.7.10- 新增「 回收站」Tab:批量清理
/vol*/UID/.@#local/trash/,按 mtime 30/90/365 天分级清理,root 权限包含全部用户
- 新增系统清理」Tab:17 项扫描目标(apt/syslog/journal/包管理器缓存/浏览器/Playwright/旧内核),三档风险过滤+一键推荐清理+清理前 manifest 备份
- 启动警告弹窗(每次打开应用强制阅读3 秒,红底警示 + 强制确认项)
- 安全加固:4 个删除端点 isSafePath 白名单、CSV 注入防护、3 个docker 删除加 modal 确认
- empty_dir 重写: stop API、跳过 @app*、流式扫描 + state file 修复complete 状态保留
- 回收站 Tab 移动端自适应(480px按钮 2 列 +表格切卡片 +modal 全屏)

用了多久的飞牛 fnOS,你的磁盘还剩多少?
每次装完应用、挂载网盘、跑几次 Docker,系统中就悄悄留下一堆"幽灵目录"——已卸载的应用残留、失效的网盘挂载点、无用的 Docker 资源。时间一长,C 盘(或者说你的 vol)就这么被悄悄吃光了。
清理精灵 FnClearup 就是来解决这个问题的。
它能做什么?
🔍 智能扫描残留目录
自动遍历所有 vol 卷,交叉比对已安装应用列表,精准识别孤立目录。哪些该删、哪些不该删,一目了然。
🐳 Docker 资源一站清理
卷、网络、镜像分别归类,在用/残余分开显示。支持批量勾选一键删除,不用再记那些冗长的 docker volume rm 命令。
📁 tmp 临时文件清理
扫描 /tmp 和 /var/tmp 下 24 小时以上未访问的文件,防止临时文件占满磁盘。
🗑️ 文件 & 音乐去重
SHA-256 多线程哈希智能分组,音乐重复基于元数据(ID3/FLAC)识别。大文件显示哈希进度百分比,失败提示具体原因,不糊弄。
🧹 空目录清理
新增功能:扫描指定目录下所有空目录,支持批量删除(送回收站或直接清除)。
💡 多维度管理
应用 / 网盘 / Docker / tmp / 去重 / 去空 六个 Tab,KPI 卡片实时展示统计信息,桌面端和移动端自适应。
技术细节
 • 纯 Node.js ESM,零 npm 依赖
 • 后端 API + 前端原生 UI,无框架负担
 • fnOS Gateway UNIX Socket 通信,安全稳定
 • 多线程哈希池(10 线程并行,动态调度)
 • 空目录扫描跳过 fnOS 回收站目录,不误删v0.7.2 更新(2026-05-30)
 • 新增「去空」Tab,空目录一键清理
 • 扫描中实时显示当前目录路径,每 10 个更新一次
 • 移动端空目录列表水平滚动,路径自动换行
 • uncaughtException + 进程退出码检测,子进程崩溃在 FnDepot地方商店搜索即可。https://github.com/Wyf841015/FnDepot 找到最新版本。
如果对你有帮助,欢迎点个 Star ⭐,有需要也可以赞助支持 🙏
收藏
送赞 10
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1

查看全部评分

0

主题

8

回帖

0

牛值

fnOS系统内测组

飞牛百度网盘玩家

2026-6-1 07:18:19 显示全部楼层
赞一个  非常好用

0

主题

5

回帖

0

牛值

江湖小虾

2026-6-1 09:25:49 显示全部楼层

很好,可以查重

8

主题

78

回帖

0

牛值

初出茅庐

2026-6-1 13:19:17 显示全部楼层

支持arm不

应该支持  详情 回复
2026-6-1 22:24

3

主题

12

回帖

0

牛值

江湖小虾

2026-6-1 18:57:01 显示全部楼层
github上地址无效呢

8

主题

27

回帖

0

牛值

系统先锋体验团🛩️

2026-6-1 22:23:19 楼主 显示全部楼层

8

主题

27

回帖

0

牛值

系统先锋体验团🛩️

2026-6-1 22:24:04 楼主 显示全部楼层

应该支持
谢谢确实是支持的  详情 回复
2026-6-2 14:59

0

主题

8

回帖

0

牛值

江湖小虾

2026-6-2 08:17:36 显示全部楼层

终于找到刚需内容,感谢楼主投喂,好人一生平安!handshake

0

主题

8

回帖

0

牛值

江湖小虾

2026-6-2 12:27:52 显示全部楼层

谢谢楼主分享,终于找到清理垃圾类的飞牛软件了

4

主题

115

回帖

0

牛值

初出茅庐

2026-6-2 13:22:48 显示全部楼层

很好用,感谢楼主

0

主题

10

回帖

0

牛值

江湖小虾

2026-6-2 14:30:19 显示全部楼层
谢谢大佬

8

主题

78

回帖

0

牛值

初出茅庐

2026-6-2 14:59:22 显示全部楼层

谢谢确实是支持的  

0

主题

1

回帖

0

牛值

江湖小虾

2026-6-2 19:04:27 显示全部楼层

为啥打开黑屏

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

8

回帖

0

牛值

系统先锋体验团🛩️

2026-6-2 20:04:43 显示全部楼层

文件去重功能一直扫描失败,也没有任何反馈是咋回事

是不是你没开放文件夹的读书功能  详情 回复
2026-6-3 10:32

0

主题

5

回帖

0

牛值

江湖小虾

2026-6-3 10:32:33 显示全部楼层
Zutter 发表于 2026-6-2 20:04
文件去重功能一直扫描失败,也没有任何反馈是咋回事

是不是你没开放文件夹的读书功能

10

主题

442

回帖

0

牛值

小有名气

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-6-4 10:54:31 显示全部楼层

去重功能,强制保留第一个原始文件不太合理啊,

可以选择吧?要把你给个规则,该留哪一个?不好定规则啊  详情 回复
2026-6-4 11:56

8

主题

27

回帖

0

牛值

系统先锋体验团🛩️

2026-6-4 11:56:39 楼主 显示全部楼层
Melody 发表于 2026-6-4 10:54
去重功能,强制保留第一个原始文件不太合理啊,

可以选择吧?要把你给个规则,该留哪一个?不好定规则啊

4

主题

25

回帖

0

牛值

fnOS系统内测组

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-6-4 18:13:24 显示全部楼层

image.png

这个系统内核怎么会被当做缓存文件被扫出来?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下个版本,单独处理意见  详情 回复
2026-6-4 18:47

8

主题

27

回帖

0

牛值

系统先锋体验团🛩️

2026-6-4 18:47:48 楼主 显示全部楼层
OneTian1211 发表于 2026-6-4 18:13
这个系统内核怎么会被当做缓存文件被扫出来?

下个版本,单独处理意见
可以检测清理旧内核,不要把当前正在用的内核文件显示出来就行  详情 回复
2026-6-5 21:46

4

主题

25

回帖

0

牛值

fnOS系统内测组

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-6-5 21:46:48 显示全部楼层
一零一二 发表于 2026-6-4 18:47
下个版本,单独处理意见

可以检测清理旧内核,不要把当前正在用的内核文件显示出来就行,飞牛内核大版本更新,系统都会存在多个内核,可以考虑清理不用的旧内核
我想了,本来也是这么设计的,不过还是怕出错,所以都停电,内核不动  详情 回复
2026-6-5 22:04

8

主题

27

回帖

0

牛值

系统先锋体验团🛩️

2026-6-5 22:04:13 楼主 显示全部楼层
OneTian1211 发表于 2026-6-5 21:46
可以检测清理旧内核,不要把当前正在用的内核文件显示出来就行,飞牛内核大版本更新,系统都会存在多个内 ...

我想了,本来也是这么设计的,不过还是怕出错,所以都停电,内核不动

4

主题

25

回帖

0

牛值

fnOS系统内测组

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2026-6-7 17:09:35 显示全部楼层

涉及内核这种还是要谨慎些

0

主题

1

回帖

0

牛值

江湖小虾

2026-6-8 11:12:18 显示全部楼层

去重查出太多的重复,然后网页就奔溃了。希望优化下。另外希望能增加去重白名单目录。感谢

0

主题

6

回帖

0

牛值

江湖小虾

2026-6-11 22:40:26 显示全部楼层
加油加油加油加油

71

主题

41

回帖

0

牛值

小有名气

2026-6-11 22:50:21 显示全部楼层

升级系统以后用不了了.应该是版本需要升级了

4

主题

9

回帖

0

牛值

江湖小虾

2026-7-3 21:13:30 显示全部楼层

image.png
反馈BUG,这2个容器,实际使用中,工具却判断未使用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

1

回帖

0

牛值

江湖小虾

谢谢

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则