事情本身不复杂,线索都在日志里。数据目录每天固定涨一 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 更准,应用定时写的新文件常常藏在随机命名的深层目录里。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189