监控macos磁盘空间增长需三步:定时采样(df记录关键路径)、聚焦目标(/system/volumes/data等)、归因分析(快照、本地快照、apfs克隆体);辅以m-cli或stats可视化趋势及阈值告警。

监控 macOS 磁盘空间增长趋势,关键不是只看“当前剩多少”,而是掌握“每天/每周涨多少、谁在涨、涨得是否异常”。这需要结合定时采样、目标路径聚焦和变化归因三步走。
用 df 定时记录核心挂载点使用率
macOS 的磁盘结构特殊(如 /System/Volumes/Data 才是用户数据真实位置),不能只盯 /。推荐每天固定时间运行以下命令,保存结果供比对:
date; df -h | awk '$5 ~ /[0-9]+%/ && $1 ~ /^\/dev\/disk|\/System\/Volumes\/Data|\/private\/var\/folders|\/Volumes\// {print $1, $5}'- 把输出追加到日志文件:
... >> ~/Desktop/disk-trend.log - 重点保留的路径:/System/Volumes/Data(主数据区)、/private/var/folders(用户缓存)、/private/var/vm(虚拟内存)、/Volumes/xxx(外接盘)
针对高增长嫌疑目录做增量快照
如果发现某挂载点使用率周增超 5%,就进入该路径做轻量级体积快照,避免全盘扫描:
- 进用户主目录:
cd /System/Volumes/Data/Users/你的用户名 - 生成当日大小摘要:
du -sh Downloads Library/Desktop | sort -hr > ~/Desktop/size-$(date +%F).txt - 特别关注:Downloads(未清理安装包)、Library/Caches(Xcode/npm/Safari 缓存)、Library/Application Support(Docker 镜像、VM 虚拟机磁盘、Notion 本地库)
识别“隐形增长源”:本地快照与 APFS 克隆体
很多空间增长并非你主动写入,而是系统自动行为。两类最易被忽略:
-
Time Machine 本地快照:即使没连备份盘,SSD 空间紧张时也会保留多个快照。查命令:
tmutil listlocalsnapshots /;删旧快照:tmutil deletelocalsnapshots $(date -v-7d +%Y-%m-%d) -
APFS 克隆体膨胀:复制大文件(如 VM 磁盘、.sparseimage)后,初始不占新空间,但一旦修改,就会触发写时复制(CoW)。用
stat -f "%i %z" file1 file2对比 inode 和大小,若 inode 不同且 size 增长,说明已开始占用额外空间
用 m-cli 或 Stats 实现图形化趋势追踪
终端日志适合排查,但看趋势更需可视化:
-
m-cli:安装后执行
m disk usage --watch 3600(每小时刷新一次),支持导出 CSV,可用 Numbers 或 Excel 画折线图 - Stats(菜单栏工具):启用 Disk 模块后,可设置历史记录时长(如 7 天),直接显示读写速率与可用空间双曲线,鼠标悬停看具体时间点数值
- 小技巧:把
df -h | grep "Data" | awk '{print $5}' | tr -d '%'的结果喂给脚本,配合osascript弹窗提醒——当周增长率超阈值时自动提示











