1. 运维必备:Linux下du命令的基本用法
在运维实践中,了解目录大小是容量管理的第一步,尤其是在清理日志、缓存、临时文件时。du 命令以目录树的方式呈现占用情况,是系统管理员的得力工具。
本文聚焦于如何使用 du 快速、准确地查看目录大小,并给出实用的组合命令,帮助你在日常巡检、容量评估和容量报告中节省时间。
1.1 查看单个目录的大小
快速获取目标路径的总占用量,可以直接使用 -s(汇总)和 -h(人类可读单位)选项的组合,省去逐层统计的繁杂。
这类基础用法是运维日常的“第一步”,特别是在初步判断磁盘压力时尤为高效。
du -sh /var/log1.2 查看多级目录大小并排序
当需要了解同一层级下各子目录的占用时,结合 --max-depth=1 可以实现分层统计,便于快速定位容量热点。
接着将结果进行排序,可以清晰地看到哪些目录是当前的主导占用者,便于后续清理或扩容决策。
du -h --max-depth=1 /home | sort -hr1.3 统计包含隐藏目录的总量
统计时通常会包括隐藏项(以点开头的目录),不必额外排除隐藏项,除非你有特定分析需求,这让容量分析更直观。
对于需要汇总的场景,输出总量和分项信息同样重要,以便后续对比与报告。
du -shc /home | tail -n 12. 详细参数与高级用法
参数灵活性是 du 命令的核心优势,掌握常用选项可以在不同场景下快速得到有用信息。
通过示例,你将理解如何在大数据量系统中缩短统计时间、避免不必要的统计开销。
2.1 -h 与人类可读单位
-h 选项将结果转化为易于阅读的单位,如 K、M、G,帮助快速判断容量规模,并使报告更友好。
结合分层统计时,-h 能让你在第一时间把握数量级,减少单位换算的困扰。
du -h --max-depth=2 /var/log2.2 --max-depth 的深度控制
--max-depth=N 可以限制递归的深度,在大目录结构下显著提升统计速度,同时保留层级信息,便于容量分析。
当需要完全展开所有子目录时,可以将 N 设置为更大的值,甚至使用无 --max-depth 的完整版统计。
du -h --max-depth=1 /etc2.3 --exclude 排除不需要统计的路径
某些目录如虚拟文件系统挂载点、缓存目录等并不需要计入容量分析,可以通过 --exclude 实现灵活排除,提升分析的聚焦度。
结合通配符,排除规则可以更加精确,避免对无关路径的误导性统计。
du -h --max-depth=1 --exclude='/proc' /3. 实战场景与技巧
在运维监控与容量报告中,将统计结果自动化、可追溯地保存,是高效运维的关键。
以下场景示例展示了将 du 的输出融入日常工作流的不同方式,帮助你在真实环境中快速落地。
3.1 将结果导出到文件以备份与审计
将统计结果写入文件,便于留痕和后续审计、汇报,也是容量分析的常规做法。

通过将排序后的输出重定向到文本文件,可以实现日志化与数据持久化。
du -h --max-depth=1 /var | sort -hr > dir_sizes.txt3.2 快速定位磁盘热点的前 N 条目录
结合 sort 与 head,可以快速定位前 N 个占用最大的目录,帮助运维快速锁定热点区域,提高处置效率。
这种方法特别适用于容量突增场景或日常巡检的快速日结。
du -h --max-depth=1 / -x | sort -hr | head -n 203.3 与定时任务结合实现周期性监控
将 du 的统计放入定时任务,如 cron 或 systemd timer,形成自动化的容量监控流水线,并可与告警系统集成。
你可以设置每日或每周的统计任务,并将结果推送到日志、邮件或监控看板。
0 2 * * * du -h --max-depth=1 / | sort -hr > /var/log/dir_size.log 

