Linux磁盘空间突然减少_大文件定位方法

1次阅读

磁盘空间突然减少通常源于进程持续写入、日志疯长、缓存积或临时文件未清理;应先用df -h定位告警分区,再逐层du -h –max-depth=1配合sort -hr缩小范围,最后用find找大文件并谨慎处理。

Linux磁盘空间突然减少_大文件定位方法

磁盘空间突然减少,通常不是因为文件凭空变大,而是某个进程持续写入、日志疯长、缓存堆积或临时文件未清理。关键不是“删得快”,而是“找得准、动得稳”。下面分三步讲清楚怎么快速定位真正的大文件。

先看哪块盘满了

df -h 看整体占用,重点关注 Use% 列超过 90% 的挂载点。比如输出里显示 /dev/vda1 97% /,说明根分区告急;如果 /dev/vdb1 95% /data,那问题在数据盘。别一上来就进 /var/log 盲查——先确认目标分区,省一半时间。

逐层缩小范围找大目录

进到告警的挂载点(如 cd /),运行这组命令:

  • du -h –max-depth=1 * 2>/dev/NULL | sort -hr | head -10:列出当前层各目录大小,取前10名
  • 挑出最大的那个(比如 /var 占了 35G),再进它:cd /var
  • 重复上一步:du -h --max-depth=1 * 2>/dev/null | sort -hr | head -10
  • 常见“高危区”优先查:/var/log/var/lib/docker/tmp/root

精准揪出单个大文件

进入可疑目录后,直接搜大文件:

  • 找大于 500MB 的文件:find . -type f -size +500M -exec ls -lh {} ;
  • 想按大小排序显示:find . -type f -size +100M -print0 | xargs -0 du -h | sort -hr
  • 特别注意正在被写入的日志(如 catalina.outmysql-bin.000xxx):用 lsof +L1lsof | grep deleted 查看是否已被删除但句柄仍被进程占用

删之前多问一句:它能动吗?

找到文件不等于立刻 rm

  • 日志类(.log):优先用 echo “” > filename 清空内容,保留文件和权限
  • 已确认无用的归档/备份:rm -f 安全删除
  • binlog、journal、core dump 类:查清来源服务,停服务再删,或配置自动轮转(logrotate/systemd-journald)
  • 不确定的文件:先 ls -l 看属主、修改时间、权限;再 filehead -n 5 看内容类型
text=ZqhQzanResources