广告

运维必备:Linux du 命令使用教程——快速查看磁盘占用与目录大小

1. 运维必备:快速查看磁盘占用与目录大小

1. 工作原理与适用场景

在 Linux 系统的日常运维中,du 命令用于统计目录及文件所占的实际磁盘空间。它通过递归遍历目标目录树,将每个条目占用的磁盘块数进行汇总,输出“路径—大小”的对照关系,帮助运维定位磁盘热点。该工具的核心能力是对目录层级逐层汇总,并能真实反映由于块大小、符号链接等因素导致的占用情况差异。

理解 du 的工作机制后,你就能在复杂的目录结构中快速确认哪一个子目录在占用磁盘,进而为容量规划和故障定位提供数据依据。与 df 不同,du 更关注单个目录及其子项的实际使用,而 df 更多展示文件系统整体的可用与已用容量。

2. 常用输出格式与初步示例

通过 -h 参数,可以将字节数转换为人类可读的单位(KB、MB、GB),极大提升阅读效率。若只需要某个目录的总占用,使用 -s 汇总即可。下面给出一个基础示例,展示如何快速查看某目录的磁盘占用:

du -h /path/to/dir

注意:默认情况下,du 会列出目标目录及其各子目录的逐级占用。若你只关心总和,可以组合使用 -s,例如:

运维必备:Linux du 命令使用教程——快速查看磁盘占用与目录大小

du -sh /path/to/dir

3. 与其他参数的协同应用

为了更高效地分析磁盘占用,可以结合 --max-depth 来限制递归深度,或者排除某些子树。示例如下,显示仅到指定深度的目录占用:

du -h --max-depth=1 /path/to/dir

如果你需要排除缓存目录或临时目录,可以使用 --exclude,以减少噪声并聚焦在实际热点上:

du -h --max-depth=2 --exclude='*/cache/*' /path/to/dir

2. 快速查看指定目录的大小

1. 常用组合:-h、-s 与 -max-depth

要快速获得一个目录及其下一级的总占用,可以直接组合使用 du -sh --max-depth=1,这在日常巡检中非常实用。你能第一时间把握哪些大头在主目录中占用最大。以下是典型用法:

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

如果你关心所有子级别的逐级占用,可以放宽深度限制,或移除 --max-depth 以获取完整树状输出。此时输出会包含大量信息,请结合 排序与筛选 来快速定位前几名。

2. 仅显示总占用,快速定位热点

在需要对某个路径进行容量快速评估时,du -sh 提供极简结果,适合仪表盘和告警前置检查:

du -sh /home

结合排序技巧,可以把顶层子目录的使用情况排在前面,帮助你快速识别大问题区域。

3. 按层级排序查看大目录

1. 利用 sort 与 head 进行排序与筛选

为了从众多目录中迅速发现占用最大的几项,可以把 du 输出 通过 sort -hr 进行降序排序,再用 head 取前 N 条。这样可以直观看到“哪几个目录”是磁盘使用的核心来源。

du -h --max-depth=2 /var | sort -hr | head -n 10

提示:利用 -max-depth 限定深度,可以减少输出量,使排序结果更具可读性。

2. 结合 --exclude 排除干扰项

在具体排查时,某些子目录如缓存或日志轮转目录常会产生大量短期数据,但不属于长期分析对象。你可以通过 --exclude 将它们排除在外,以获得更稳定的热区排名:

du -h --max-depth=2 --exclude='*/cache/*' /var | sort -hr | head -n 10

应用场景:在运维巡检中,这种筛选可以帮助你聚焦真正需要关注的目录,而不是被临时数据所干扰。

4. 实战场景:快速定位大文件与临时目录

1. 实例命令演示

面对一个疑似占用空间的分区,du 提供从顶层到底层的分解能力。先对根路径进行全量汇总,再对大头目录进行深入分析,是日常运维中常用的工作流:

du -h --max-depth=1 /  -x  # -x 限定在同一文件系统中
du -h --max-depth=2 /var | sort -hr | head -n 20

要点:在大容量系统中,先用简单的起步命令定位热点,再逐步深入到具体子目录,避免一次性输出过多信息导致分析困难。

2. 深入定位大文件与临时目录的细节

当你需要进一步钻取具体文件的占用,du 也支持对文件逐个统计输出,配合 --apparent-size 可以展示“ apparent size”(实际内容大小),而不是块设备的占用块数:

du -ah --max-depth=1 /usr | sort -hr | head -n 20

补充:如果你希望排查那些持续增长的临时目录,结合 find 命令与 du,可以实现对最近创建或修改的文件聚焦分析。

广告

操作系统标签