Linux系统通过DU与DF命令监控磁盘空间及文件大小异常

冬丽酱_3093

冬丽酱_3093

2026-03-14

264人浏览

原创

du统计可见文件实际磁盘占用,df读取文件系统超级块显示整体空间;差异常导致“磁盘满但du总和小”,主因是已删未释放文件、日志堆积或容器残留。

linux系统通过du与df命令监控磁盘空间及文件大小异常

Linux系统中,du(disk usage)和df(disk free)是两个最常用、最基础的磁盘空间分析命令,但它们作用不同、统计逻辑不同,常被误用或混淆。当发现磁盘“明明没存多少文件却显示已满”,或“删除大文件后空间未释放”,往往就和这两个命令的差异有关。

df 显示的是文件系统级别的可用空间

df读取的是文件系统超级块(superblock)中的元数据,反映的是整个挂载点(如 /、/home)的总容量、已用、可用空间,单位默认为KB。它不关心具体有哪些文件,只看底层块设备的分配状态。

  • 运行 df -h 可以直观看到各挂载点的使用率,重点关注 Use% 列是否超阈值(如 ≥90%)
  • 注意 Available 不等于 Used + Avail = Size:ext4等文件系统会为 root 预留 5% 空间(可通过 tune2fs -l /dev/sdXn | grep "Reserved block count" 查看),普通用户看不到这部分,df 却计入了“可用”统计
  • 若 df 显示已满,但 du 扫描目录总和远小于此,常见原因是:已删除但进程仍在占用的文件(lsof + deleted)、日志轮转未清理、或容器/虚拟机镜像残留

du 统计的是目录树中实际可见文件的磁盘占用

du 逐个遍历指定路径下的文件与子目录,累加其 实际占用的磁盘块数(非文件大小,考虑稀疏文件、硬链接、块对齐等)。它反映的是“当前能看见的、可遍历到的数据量”。

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 常用组合:du -sh /var/* | sort -hr | head -10 快速定位 /var 下最大的10个子目录
  • 避免权限干扰:加 2>/dev/null 屏蔽 “Permission denied” 报错,否则可能漏掉关键路径(如 /root、/proc)
  • 注意硬链接:同一 inode 多次出现时,du 默认只计算一次;若需按“每个路径独立计数”,加 --apparent-size(但该值≠真实磁盘占用)

du 和 df 结果不一致?先排查这三类典型异常

当 df -h 显示根分区 98% 已用,而 du -sh /* 2>/dev/null | sort -hr 总和仅 20GB,说明有“看不见”的空间消耗。优先检查:

  • 已删除但未释放的文件:执行 lsof +L1 或 lsof | grep deleted,找到仍在打开状态的已删文件,重启对应进程或手动清空(如 echo > /proc/PID/fd/FD_NUM)
  • 日志或临时文件堆积:检查 /var/log/journal(systemd-journald 日志)、/var/log/audit/、/tmp、/var/tmp,用 journalctl --disk-usage 查看 journal 占用
  • 容器或快照残留:Docker 用户运行 docker system df 和 docker system prune -a;LVM 用户检查 lvs 是否存在未删除的 snapshot;Kubernetes 节点注意 /var/lib/kubelet/pods 中 orphaned volumes

日常监控建议:简单有效,避免救火式运维

不要等磁盘爆满才查。把基础检查变成自动化习惯:

  • 每天定时执行:df -h | awk '$5+0 > 90 {print $0}',对使用率>90% 的挂载点告警
  • 每周扫描大目录:du -sh /var/* /home/* 2>/dev/null | awk '$1 ~ /[0-9]+[G]/ {print}',关注 GB 级别以上的异常增长
  • 关键服务日志目录(如 /var/log/nginx、/var/log/mysql)配置 logrotate,并验证 logrotate -d /etc/logrotate.d/nginx 模拟是否生效
  • 在 /etc/fstab 中为重要分区启用 noatime 和 discard(SSD),减少无谓IO,间接延缓碎片与空间管理开销

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4350

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3673

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2933

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7230

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6882

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3933

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3425

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3659

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习