前阵子我折腾 vaultwarden,然后折腾了飞牛,继而发现我在飞牛上装装删删了几个应用在/vol1/@appcenter 中还有好多应用残留,好家伙!!!
我当时就有点懵:我明明卸载了啊?
后来才搞清楚:飞牛卸载应用的时候,有个"清除本地数据"的选项,如果你没勾选,那这个应用的数据目录就会一直留在硬盘里,可能是一个月前、半年前卸载的,一直占着地方,系统里也不会再显示它。我还发现,不只是 @appdata,还有 @appconf、@apphome 这些,有的应用卸载完还会在 /usr/local 留下符号链接,在系统里留下 docker- 开头的残留用户——这些更隐蔽,不专门去翻根本发现不了。
想找个现成的工具,结果都不太顺手
发现这个问题后,我第一反应是:这玩意儿肯定有人做过工具吧?去网上搜了一圈,找到三个:
- fnclearup
- fnos-app-cleaner
- fnos-logmanager
说实话,这三个工具各管一摊,但没一个能把我发现的所有情况都覆盖到。我又不想为了清理残留装三四个工具,还得记着哪个管哪块。
干脆自己写一个
那阵子我正好在学飞牛的应用打包(之前为了升级 Vaultwarden 折腾过),想着反正流程都熟了,干脆自己写一个清理工具,把所有场景收进去。
前后花了一个礼拜,主要是下班后晚上弄的。现在这个工具叫 CleanFnOS,功能大概是这些:

应用相关的
- 卸载应用残留:
@appdata、@appconf、@apphome、@apptemp、@appmeta、@appshare这些目录里,属于已卸载应用的,一起找出来,能看大小、按应用聚合 /usr/local里的残留符号链接docker-前缀的残留系统用户
存储相关的
- Docker 清理:容器、卷、网络、镜像、Build Cache、Dangling 镜像
- 临时文件:
/tmp下超过 24 小时没动过的 - 空目录:整卷扫描完全空掉的目录
- 重复文件:按 SHA-256 指纹找内容完全一样的,支持文件去重和音乐去重
- 大文件:跨卷扫 Top100,看看空间都被谁吃了
- 系统缓存:apt/npm/pip/uv/浏览器缓存、系统日志等 17 项
系统相关的
- 回收站:应用回收站的恢复/清空;系统回收站按 30/90/365 天分级
- KVM:能检测出"鬼影快照"——就是
virsh里看不见、但 qcow2 文件里实际占着空间的快照,还能启停虚拟机 - 定时清理:设好间隔自动跑,完事推个报告
关于安全,我是认真想的
清理工具最怕误删,这方面我花了不少心思:
@appshare不误报:这是共享目录,多个应用共用,我按符号链接的归属来判断,只清理确定属于已卸载应用的,不会碰还在用的应用的数据;- 删除默认进回收站:大部分清理都是"移入回收站",误删了还能恢复;
- 高风险操作要勾选确认:永久删除这类操作,必须勾选"已知晓不可恢复"才能执行;
- 有审计日志:每一步操作都有记录,出了事能查。
但是
重要的事情说三遍:⚠️ 免责声明:本工具为个人使用而开发,非商业化运行;清理功能设计不尽全面,清除操作存在风险,请谨慎使用!因使用本工具造成任何数据丢失,本工具概不负责
重要的事情说三遍:⚠️ 免责声明:本工具为个人使用而开发,非商业化运行;清理功能设计不尽全面,清除操作存在风险,请谨慎使用!因使用本工具造成任何数据丢失,本工具概不负责
重要的事情说三遍:⚠️ 免责声明:本工具为个人使用而开发,非商业化运行;清理功能设计不尽全面,清除操作存在风险,请谨慎使用!因使用本工具造成任何数据丢失,本工具概不负责
最后
这个工具算不上多惊艳,就是把自己遇到的问题一个个解决了。如果你也玩飞牛,不妨翻翻硬盘看看有没有这种"卸载了但没清干净"的残留——说不定能白捡几个 G 的空间。
仓库地址:https://github.com/kyeo-hub/CleanFnOS 下载地址:
- X86: https://github.com/kyeo-hub/CleanFnOS/releases/download/v1.6.5/cleanfnos_1.6.5_x86.fpk
- ARM: https://github.com/kyeo-hub/CleanFnOS/releases/download/v1.6.5/cleanfnos_1.6.5_arm.fpk
有什么想加的功能,或者发现了什么 bug,欢迎提 issue 或者在评论区说一声。