Linux 磁盘满了先找大文件:du 与 find 两条命令的事

服务器磁盘使用率飙到 95%,告警邮件一封接一封。这时候最需要的不是慌着删东西,而是快速回答一个问题:空间到底被谁吃了?两条命令、几个常用参数组合,五分钟内把"大块头"找出来。

第一步:du 定位大目录

先确认哪个文件系统满了:df -h 看全局,锁定使用率最高的挂载点。然后进到对应路径(通常是根目录或数据目录)跑:

du -h --max-depth=1 | sort -rh | head -20

一层层往下钻:这条命令列出当前目录下各子目录的占用并按大小排序,最大的排最前。对最大的子目录重复执行,两三轮就能钻到具体目录。日志目录(/var/log)、应用数据目录、备份残留是三大惯犯。

第二步:find 抓具体大文件

定位到目录后,把里面的大文件点名:

find . -type f -size +500M -exec ls -lh {} \;

列出 500MB 以上的文件及其大小、时间。看修改时间就能判断价值:几个月没动的旧备份、滚动到很早的历史日志,清理优先级最高。按时间组合过滤更精准:-mtime +90 表示 90 天未动过的文件。

第三步:清理的两个讲究

一是删日志别直接 rm 正在写入的日志文件——进程还握着文件句柄,空间不会释放(df 显示还是满的),正确做法是截断:> big.log,或让日志轮转机制接管。二是删完再看一眼 df 确认回收生效,顺手排查"删了还满"的经典情况:有进程占用已删除文件时,lsof | grep deleted 能把它们揪出来,重启对应服务释放。

磁盘告警的处理顺序就是:df 定位、du 钻取、find 点名、讲究地删。命令不长,关键是养成不乱删的纪律。

服务器日常运维的命令技巧,贵州诚鑫致达科技在头条、百家号持续输出,欢迎关注收藏。

企业存储选型参考|贵州诚鑫致达

做海量监控接入与长期归档,群晖机型参考:HD6500 · RS3621xs+ · DS2422+。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

服务区域|贵州诚鑫致达

贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。云南昆明企业 NAS 存储方案与备份容灾,支持远程与上门服务。