事情本身不复杂,线索都在日志里。数据目录每天固定涨一 G,du 总数与 df 对得上,但按一级目录看每个都不大,始终找不到增长的落点在哪。
把日志和配置对完,能解释这个现象的基本就这几处。目录层级很深,统计时被层数参数截断。少数情况下是有大量小文件分布在深层,统计耗时被中途打断。
另外,数据被写进了隐藏目录,默认列表根本不显示。
自上而下逐层下钻统计
du -h --max-depth=1 /data | sort -h | tail
接着按修改时间找新增的大文件
find /data -type f -mtime -1 -size +100M
随后统计隐藏目录的占用
du -sh /data/.[!.]* 2>/dev/null
等前面都确认过,再确认 inode 与句柄分布
df -i /data && lsof +D /data | wc -l
中间停过一次,把已经改的东西回滚干净,再重新来一遍。
恢复的判定其实很直接。找到持续增长的具体路径,处理后观察一天,容量曲线走平,不再每天涨一 G。
补一句。按修改时间找新增文件比 du 更准,应用定时写的新文件常常藏在随机命名的深层目录里。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。