banner
约 3,000 字
10 分钟

我给飞牛 fnOS 写了个「磁盘清理助手」:定时扫盘 + 规则随便定,还能让 AI 帮你写规则

我给飞牛 fnOS 写了个「磁盘清理助手」:定时扫盘 + 规则随便定,还能让 AI 帮你写规则

摘要

给飞牛 fnOS 写的原生 fpk 清理应用,专治磁力下载目录里搭车的网页、TXT、小体积视频:定时扫盘、自定义规则、AI 生成规则、删除前预览确认、完整日志。纯 Python 标准库零依赖,文末附下载。

我给飞牛 fnOS 写了个「磁盘清理助手」:定时扫盘 + 规则随便定,还能让 AI 帮你写规则

飞牛 fnOS 用了一年多,存储空间的问题越来越明显:磁力下载往盘里塞的远不止你想要的那个文件——网页广告、txt 说明、几十 MB 的广告小视频,常常跟着正片一起下进来;影视库里同一个文件存了好几份;还有些文件夹早就空了却一直躺在盘里。手写脚本清理过几轮,但每次需求变了都要改代码,而且脚本没有界面,删了什么、为什么删,事后全靠翻终端记录。

所以这次干脆把它做成了一个正经的 fnOS 应用——「磁盘清理助手」。它是一个飞牛第三方 fpk 应用,装进应用中心就能用:定时扫盘、规则随便定、删除前先预览确认、删了什么全有日志。这篇把设计思路、完整上手流程和下载地址都整理出来。

一、为什么自己写一个

市面上的磁盘清理工具不少,但放在飞牛 NAS 上都有点水土不服:

  • 盘位多:fnOS 的存储卷是 /vol1 到 /vol6 这样挂载的,很多工具默认只认一个系统盘;

  • 磁力下载带进来一堆搭车文件:下载工具只管把任务下完,正片旁边的网页广告、txt 说明、小体积广告视频不会帮你收拾,攒得多了比正片还占地;

  • 不敢自动跑:多数工具要么只能手动扫,要么自动删了不留记录,定时任务挂在上面心里没底。

我要的东西其实很明确:带 Web 界面、规则可以自己定、先预览再删、能定时自动跑、每一条删除都有日志可查。干脆自己写。

二、它是什么架构

先说几个关键设计:

  • 原生 fpk 应用,不是 Docker。直接跑在 fnOS 宿主机上,能访问全部 /vol* 存储卷,没有端口映射和挂载路径的折腾。

  • 后端纯 Python 标准库:HTTP 服务用 http.server,删除日志存 SQLite,调度用标准库线程,零 pip 依赖。

  • 前端是单文件 SPA:原生 JS,没有构建步骤,断网也能正常操作。

  • 整个 fpk 安装包只有两百多 KB。

安装时会自动关联安装应用中心的「Python 3.12」开发工具作为运行时,不需要手动装环境。

磁盘清理助手主界面:扫描页
磁盘清理助手主界面:扫描页

界面是左侧功能目录栏的布局:扫描、结果、规则、定时、日志、设置六块。扫描页从上到下是扫描范围、扫描速度和本次执行的规则,选好之后点「开始扫描」。

三、五分钟上手流程

建议按这个顺序走一遍,确认规则没问题之后再交给定时任务:

1. 设置 → 添加扫描目录。可以点「浏览添加」从文件树里选,也可以直接在输入框里敲绝对路径回车跳转,比如 /vol1/downloads。

2. 规则 → 启用要跑的规则(下一节细说)。

3. 扫描 → 启动首次扫描。手动模式下只出清单、不删除,可以放心跑。

4. 结果 → 检查删除候选。每一项都标了规则来源、大小和「为什么被选中」,勾选确认后才会真正删除。

结果页:待删项 KPI 与逐条删除候选
结果页:待删项 KPI 与逐条删除候选

顶部是本次扫描的 KPI:待删项、可释放空间、扫描文件总数、扫描错误数。下面按规则分组列出删除候选,每行都有路径、大小和原因,右上角可以按规则筛选、按路径搜索。确认删除后,已删项会即时从列表消失、KPI 同步更新,不需要手动重扫。

5. 确认无误后 → 定时 → 创建自动清理任务。

扫描速度:四档限速

扫盘会占用 NAS 的 IO,所以做了限速设计:

档位

行为

适用场景

全速

不限速

NAS 空闲时(比如半夜)

标准(默认)

每遍历一个目录短暂停顿

日常使用,对 NAS 服务影响小

慢速

停顿更久

白天有播放、下载负载时

自定义

自己指定每目录停顿秒数

精细控制

我的用法是白天用标准档扫一次确认规则,之后定时任务设在凌晨,配全速。

四、规则系统:所有清理需求都用规则表达

这个应用的核心思路是:「删什么」完全由规则决定。规则页里分为预设规则和自定义规则两部分。

预设规则分两组,其中一组就是为磁力下载目录量身定的,对应上面说的「搭车文件」,默认关闭,装好后到规则页手动开启:

预设

默认行为

可调参数

删除网页文件

清掉 .html / .htm / .url

扩展名列表

删除 TXT 文件

清掉 .txt

扩展名列表

删除小体积视频

清掉小于 50MB 的视频

体积阈值、视频扩展名

另一组预设针对影视库整理(重复文件、多副本、空目录),同样可以改参数、停用,甚至删掉再一键恢复,本文不展开。预设之外,自定义规则 + AI 生成规则基本能覆盖所有需求,这也是更值得讲的部分。

规则页:预设规则与自定义规则
规则页:预设规则与自定义规则

自定义规则:三种类型,条件随便组合

类型

逻辑

例子

删除文件

匹配条件的单个文件进入候选

清掉没下完的 .!qB 残留文件

删除空文件夹

目录下没有任何内容 → 整个文件夹进入候选(可选仅一级)

清掉下载完早就搬空的目录

整文件夹匹配

一级子文件夹内全部文件都匹配 → 删整个文件夹

删掉只剩缩略图和 NFO 的残留目录

每条规则可以组合这些条件:扩展名、文件名正则、排除正则、大小区间、修改时间。比如「删除 30 天没动过、小于 1MB 的 .txt」就是一条规则的事。

整文件夹类的删除还带保险阈值(默认 100MB):真正执行删除前会再核验一遍文件夹的实际总大小,超过阈值就自动跳过、标记人工复核——防止正则写歪了把大目录一锅端。

重复文件:留哪份自己挑

碰到重复文件类的候选,结果页会把整组文件全部列出来,包括当前按策略保留的那一份。每一行都有「保留此文件」按钮,点一下就把保留对象换成它,另外那份自动进入待删——不用去文件管理器里翻路径。

重复组:一键「保留此文件」交换保留对象
重复组:一键「保留此文件」交换保留对象

五、AI 生成规则:大白话描述,粘贴回来就能用

手写正则对不少人是个门槛,所以做了「AI 生成规则」。这个应用本身离线运行、不内置任何 AI 调用,生成规则用的是「提示词中转」的三步法:

  1. 在弹窗里用大白话描述你想要什么,比如「删除所有 30 天没访问过的临时日志」;

  2. 点「生成提示词」,复制下面整段话,发给任意你手头的 AI(WorkBuddy、ChatGPT、DeepSeek 都行)——规则 JSON 的格式说明已经内置在提示词里;

  3. 把 AI 回复的 JSON 粘贴到「导入 JSON」,应用会自动校验字段,合法就入库,不合法直接报错拒收。

AI 生成规则弹窗:三步流程与内置格式说明
AI 生成规则弹窗:三步流程与内置格式说明

这样做的好处是应用不用接任何 API Key,也不依赖外部服务,规则却可以无限扩展。

六、定时任务:到点自动扫、直接删

确认规则跑过几轮、候选都符合预期之后,就可以在「定时」页建自动任务了:

  • 周期三种:每天指定时刻、每周指定几天、每隔 N 小时(0.1~720 小时);

  • 任务可分类:每个任务可以限定只扫哪几个目录、只跑哪几条规则(默认全部),列表里直接显示「目录 · 规则」摘要——比如「只对下载目录跑三条搭车文件预设」可以做成一个独立任务,不用动全局配置;

  • 到点自动执行「扫描 → 按任务指定的规则 → 直接删除候选」,不进回收站;

  • 每一条删除(包括定时任务里的)都记录进删除日志;

  • 与手动扫描互斥:有任务在跑时,另一边自动跳过本轮,不会打架;

  • 运行结果写回任务卡片:下次运行时间、上次结果一目了然。

定时删除是全自动的,所以第七节的安全机制请务必先配好再开。

七、删文件的工具,安全是底线

一个能定时删文件的工具,我给它叠了这几层防护:

删除确认弹窗:直接删除警告与双确认
删除确认弹窗:直接删除警告与双确认
  • 手动模式只出清单:扫描本身永远不删东西,删除必须到结果页勾选确认;

  • 双重确认:点删除后弹出应用内确认框,明确警告「直接删除、不进回收站、操作不可恢复」;

  • 文件夹保险阈值:整文件夹删除前二次核验大小,超阈值跳过待人工复核;

  • 受保护路径:服务端拒绝删除 /、/vol1~/vol7、/home、/etc、/usr、/var、/bin、/sbin、/boot 这些一级路径,只接受绝对路径,单次最多删 20000 项;

  • 保留关键词名单:文件名命中关键词(默认 fanart / poster / banner / backdrop / cover / folder,规则页可改)的文件永不进入删除候选;整文件夹里只要含有一个保留文件,整个文件夹自动跳过——刮削海报、封面这类元数据文件不会被误伤;

  • 扫描出错排除:有读取错误的文件夹不参与任何文件夹类删除;

  • 访问密码:设置页可选开启,开启后所有操作都要先登录,避免局域网内误触;

  • 日志留底:每条删除记录时间、路径、大小、规则、来源(手动/定时)和结果,SQLite 存储,保留天数可配(默认 90 天,超期自动清理);

  • 卸载不丢数据:卸载时会询问是否删除本地配置和日志,选保留的话重装后原样沿用。

八、下载与安装

安装方式就是飞牛的 fpk 手动安装,完整流程(入口位置、安全提示、安装确认)我在上一篇文章里逐步截过图,这里不再重复,只列关键步骤:

  1. 飞牛 fnOS(x86 平台)→ 应用中心 → 右上角「手动安装」→ 上传 diskcleaner.fpk;

  2. 首次安装会自动关联安装「Python 3.12」开发工具,等它装完即可;

  3. 从桌面图标「磁盘清理助手」打开,地址是 http://NAS_IP:9610。

下载地址(夸克网盘):

纯文本
链接:https://pan.quark.cn/s/d02ff455dbb1
口令:/~63a03bCuz2~:/

打开夸克网盘 App 粘贴口令,或直接访问链接,取回 diskcleaner.fpk 上传到应用中心即可。当前版本 1.0.20。

九、写在最后

这个应用是给自己「每周手动跑脚本」的懒癌晚期做的:现在规则配好、定时任务挂上,每周自动清一遍,删了什么打开日志页就能看到。两百多 KB 的包、零第三方依赖,就算哪天不想要了,卸载时数据也能一并带走或完整保留。

如果你也在用飞牛 fnOS,手里有一堆下载目录、影视库要定期收拾,可以试试。有想加的规则类型或者发现 bug,欢迎在评论区留言。

END