df 与 du:Linux 磁盘查看入门

举报
yd_283574177 发表于 2026/11/08 15:52:36 2026/11/08
【摘要】 磁盘空间不足、应用写文件失败时,先分清问题:是整块盘满了,还是某个目录太大?Linux 里 df 和 du 各管一面:df 看文件系统还剩多少空间,du 看目录或文件实际占了多少。分清再动手,排查才不会走弯路。 一、df:先看还剩多少df 是 disk free 的缩写,查看所有已挂载文件系统的使用情况。最常用的是 df -h,h 表示用人易读的单位显示,如 G、M:df -h重点看挂载点和...

磁盘空间不足、应用写文件失败时,先分清问题:是整块盘满了,还是某个目录太大?Linux 里 df 和 du 各管一面:df 看文件系统还剩多少空间,du 看目录或文件实际占了多少。分清再动手,排查才不会走弯路。

一、df:先看还剩多少

df 是 disk free 的缩写,查看所有已挂载文件系统的使用情况。最常用的是 df -h,h 表示用人易读的单位显示,如 G、M:

df -h

重点看挂载点和使用率:挂载点说明这块空间挂在哪个目录上。只看根目录用 df -h /;看类型用 df -hT。还有空间却写不进去时,查 inode:df -i 统计索引节点,小文件太多、空间没满、inode 先满,也无法新建文件。

二、du:再看谁占了空间

du 是 disk usage 的缩写,统计目录或文件占用的空间。看当前目录多大:

du -sh .

列出当前目录下各子目录的大小:

du -sh *

只统计一层子目录用 --max-depth=1:

du -h --max-depth=1 /var

找到大目录后,再进一层继续查,就能定位到大户。配合排序更直观,列出 /var 下最大的十个子目录:

du -h --max-depth=1 /var | sort -rh | head -10

三、df 和 du 对不上怎么办

df 说盘满了,du 却找不到大文件,最常见的原因是文件被删了、还被进程占着。日志被 rm 后,写日志的进程没重启,句柄仍占空间,df 按已用来算,du 已看不到它。办法是重启占用的进程,或清空而不是删除正在写的文件,再看 df 是否恢复。也可能是挂载点遮挡:先写进未挂载目录的大文件,被后来挂载的磁盘挡住了,先取消挂载再核对。

四、排查流程

磁盘告警时按这个顺序走:df -h 确认哪个挂载点满了;du -h --max-depth=1 加排序,找出最大的几个目录;进到大目录里重复上一步,直到找到大文件或日志目录;最后再决定清理。能清的是过期日志、临时文件和废弃备份,清前确认归属和业务影响;正在写的日志优先截断或轮转;系统目录和不认识的文件不要动手。

记住:df 定方向,du 找目标。两条命令配合,多数磁盘空间问题都能快速定位。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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