NAS 磁盘清理实战:删除陈旧摄像头录像释放 425GB 空间

NAS 磁盘清理实战:删除陈旧摄像头录像释放 425GB 空间

2026-07-02

一个 NAS,三块盘,一块红了

Filesystem      Size  Used Avail Use% Mounted on
/dev/md1        1.9T  344G  1.5T  19% /mnt/disk1
/dev/md2        3.7T  3.4T  287G  93% /mnt/disk2  🔴
/dev/md3        3.7T  3.2T  466G  88% /mnt/disk3  🟡

disk2 93%,disk3 88%,disk1 只有 19%。同为 3.7TB 盘,为什么占用率相差 5%?为什么 disk1 这么空?

unRAID 的 share 分配策略决定了数据去哪。Media 共享配置了 disk2,disk3 + highwater 分配器——意思是新文件先填满 disk3,再写 disk2,disk1 完全不参与。结果是 disk3 先红,disk2 紧随其后,disk1 一直闲着。

这篇不是教你买大盘扩容,是教你怎么把存量盘通过策略性清理“回血”

核心数据

项目 清理前 清理后
目录总文件 29,521 26,119
目录总大小 3.7 TB 3.2 TB
已释放空间 ~425 GB
最早录像 2025-08-01 2025-09-01

磁盘影响:
- Disk 2(93%)→ 无显著变化,说明 8 月数据主要落在 disk3
- Disk 3(88% → 77%)→ 从 3.2T 降到 2.8T,腾出 ~400GB ✅
- Cache 盘基本不变(71%→72%)

删掉 2025 年 8 月单月的 3,402 个文件(425GB),disk3 从 88% 降到 77%。这就是这篇的全部核心。

背景:摄像头录像怎么存的

小米摄像头(以及大多数支持 NAS 存储的摄像头)录像命名规律:

设备ID_YYYYMMDD_HHMMSS_HHMMSS.mp4

目录结构:

/mnt/user/Media/
├── XiaomiCamera_Archive/     # 归档目录(年份分层)
│   ├── 2024/
│   ├── 2025/
│   └── 2026/
└── XiaomiCamera_00_78DF728C7940/  # 设备 ID 目录
    ├── 00_202508*.mp4        # 2025年8月录像
    ├── 00_202509*.mp4
    └── ...

关键点00_2 看起来像年份目录,实际是设备 ID 78DF728C7940 的简写。别被目录名骗了,ls /mnt/user/Media/ 对比确认。

定位大户:哪个月最占空间

# 统计特定月份大小(用 ls + awk,避免 find 大目录超时)
ssh root@NAS_IP \
  'ls -la /mnt/user/Media/XiaomiCamera_00_78DF728C7940/00_202508*.mp4 | \
   awk '\''{sum+=$5} END {printf "%.2f GB, %d files\n", sum/1073741824, NR}'\'''

结果:425.25 GB, 3402 files(2025 年 8 月单月)

为什么用 ls 而不是 find?大目录下 find 递归遍历极易超时。分层逐级 ls,先看年份,再看月份,最后看文件。

执行清理

# 删除 2025年8月 录像
ssh root@NAS_IP 'rm -f /mnt/user/Media/XiaomiCamera_00_78DF728C7940/00_202508*.mp4'

通配符批量删除,几秒完成。

验证

# 看剩余最早录像
ls /mnt/user/Media/XiaomiCamera_00_78DF728C7940/ | sort | head -3
# 00_20250901_xxx.mp4
# 00_20250902_xxx.mp4
# ...

# 看目录实际大小(du 不是 df,df 显示整块 Btrfs 占用)
du -sh /mnt/user/Media/XiaomiCamera_00_78DF728C7940/

unRAID 坑:容器内 df -h 报告的是整块文件系统占用,非特定目录。看目录实际大小必须用 du -sh

为什么清理效果不均衡?

回到开头的问题:为什么 disk3 降了,disk2 没动?

Media 共享配置:

includeDisks: disk2, disk3
allocator: highwater

highwater 策略:设定水位线,新文件优先写剩余空间最多的盘,直到所有盘剩余空间接近水位线,再均衡写入。实际上的效果是——disk3 先被填满,然后才轮到 disk2。

所以 2025 年 8 月的数据主要落在 disk3,删掉后 disk3 释放最明显。要想 disk2 也降下来,得继续删更早的数据(那时 disk3 还没满,数据分到了 disk2),或者手动 rebalance。

可复用命令速查

场景 命令
查磁盘占用 ssh root@NAS "df -h \| grep -E '^(/dev|//)'"
查共享配置 cat /boot/config/shares/media.cfg
看目录结构 ls /mnt/user/Media/XiaomiCamera_Archive/
统计月份大小 ls -la /path/00_202508*.mp4 \| awk '{sum+=$5} END {printf "%.2f GB, %d files\n", sum/1073741824, NR}'
删除月份 rm -f /path/00_202508*.mp4
验证最早文件 ls /path/ \| sort \| head -3
看目录实际大小 du -sh /path/

保留策略建议

当前最早录像追溯到 2024 年 7 月,循环周期约 1 年。

目标:加速处理到 2025 年 12 月,再改为 6 个月循环,释放约一半空间。

后续可扩展:
- 建立自动化清理脚本(按保留天数 / 保留空间阈值)
- 接入监控告警:disk 占用 > 85% 推送微信
- 探索视频压缩(H.264→H.265)进一步节省空间
- 手动 rebalance:把数据从高占用盘移到低占用盘(unbalance 插件或 mv

总结

  • 别只盯着扩容——存量盘通过策略性清理也能“回血” 400GB+
  • 懂分配策略才能精准清理——highwater 下旧数据集中在后填的盘,清理效果集中
  • 大目录操作用 ls 不用 find——分层确认模式,通配符批量删
  • 验证用 du 不用 df——前者看目录实际大小,后者看整盘占用
  • 保留周期要算账——1 年 → 6 个月,空间释放一半,风险可控