磁盘空间排查入门:用df和du找出谁占满了磁盘

举报
yd_250779715 发表于 2026/11/06 19:40:48 2026/11/06
【摘要】 磁盘满了,是 Linux 新手最常遇到的“突发故障”之一:服务写不进日志、软件装不上、网站打不开,报错却五花八门。别急着删文件,先用 df 和 du 两条命令把“谁占了空间”找出来。 一、先看整体:df -hdf 看的是文件系统整体的使用情况:df -h-h 的意思是按人类可读的单位显示(G、M)。重点看 Use% 和 Mounted on 这两列:根分区 / 快满了,就要继续往下查;如果是...

磁盘满了,是 Linux 新手最常遇到的“突发故障”之一:服务写不进日志、软件装不上、网站打不开,报错却五花八门。别急着删文件,先用 df 和 du 两条命令把“谁占了空间”找出来。

一、先看整体:df -h

df 看的是文件系统整体的使用情况:

df -h

-h 的意思是按人类可读的单位显示(G、M)。重点看 Use% 和 Mounted on 这两列:根分区 / 快满了,就要继续往下查;如果是 /var 或 /home 满了,排查范围就小得多。注意:df 看到的是“已分配”的空间,删除了但还被进程占用的文件,空间并不会立刻释放。

二、再找大户:du -sh 与 sort

du 看的是目录实际占用的空间。先看根目录下一级:

du -sh /* 2>/dev/null | sort -rh | head -10

这条命令会列出占用最大的前 10 个目录。发现 /var 特别大,就再往里走一层:

du -sh /var/* 2>/dev/null | sort -rh | head -10

一层一层往下钻,很快就能定位到真正的大户。2>/dev/null 是把没有权限的报错丢掉,免得刷屏;sort -rh 是按大小倒序排。

三、常见的大户与处理办法

  • 日志文件:/var/log 下的旧日志,用 journalctl --vacuum-size=200M 清理 systemd 日志,或删除轮转后留下的旧 .gz 备份。
  • 软件包缓存:apt clean 可以清理 Debian/Ubuntu 的下载缓存。
  • 被删除但仍被占用的文件:用 lsof | grep deleted 找到它,重启相关服务或结束进程后空间才会真正释放。
  • 临时文件:/tmp 下长期没人管的旧文件,确认无用后再清理。

四、几个容易踩的坑

第一,df 和 du 的数字对不上很正常:df 看文件系统,du 看目录,两者统计口径不同,正在被写入的大文件、已删除未释放的文件都会造成差异。第二,不要上来就 rm -rf /var/log 这类目录本身,删目录可能导致服务异常,删文件相对安全。第三,清理前先确认备份,日志删了就找不回来了。

五、一个固定的排查流程

磁盘告警后按这个顺序走:df -h 定分区,再用 du -sh 逐层找大目录,接着用 lsof 查已删除未释放的文件,最后按类型清理。把这四步练熟,下次磁盘满了,十分钟就能定位问题,不用再凭感觉乱删文件。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。