Linux 磁盘空间分析:掌握 du 命令的完全指南
在 Linux 系统管理中,监控磁盘空间是维护系统健康的核心任务之一。du(Disk Usage)命令是 Linux 管理员和开发者的必备工具,它能精确测量文件和目录所占用的磁盘空间。本指南将深入解析 du 命令的使用技巧,涵盖从基础操作到高级应用的完整知识体系,帮助您优化存储资源并排查磁盘空间问题。
目录#
1 du 命令概述#
du 命令通过递归遍历文件系统来计算指定路径的空间使用情况。与 df(显示文件系统整体使用)不同,du 聚焦于具体目录和文件级的空间分配,其核心优势包括:
- 精确到字节级的空间计算
- 支持递归目录扫描
- 多种可读格式输出
- 灵活的过滤与排序功能
2 基础语法与常用选项#
基本命令结构:
du [OPTIONS] [FILE/DIRECTORY]关键选项详解#
| 选项 | 说明 | 应用场景 |
|---|---|---|
-h | 人类可读格式(自动转换 KB/MB/GB) | du -h /var/log |
-s | 仅显示总大小(不显示子目录) | du -sh /home |
-c | 显示总大小统计 | du -ch *.log |
--max-depth=N | 限制递归深度 | du -h --max-depth=1 /usr |
-a | 显示所有文件(默认只显示目录) | du -ah /tmp |
--exclude="PATTERN" | 排除匹配文件/目录 | du -h --exclude="*.tmp" |
--time | 显示最后修改时间 | du -h --time /backups |
-b/-k/-m | 指定单位(Bytes/KB/MB) | du -bm iso_file.iso |
3 实用示例场景#
3.1 基础空间检查#
# 查看当前目录总大小(简洁模式)
du -sh ./
# 分析/var下所有一级子目录大小(深度=1)
du -h --max-depth=1 /var3.2 文件级空间分析#
# 显示/tmp目录下所有文件大小(包括隐藏文件)
du -ah /tmp
# 检查日志目录,排除.gz压缩文件
du -h --exclude="*.gz" /var/log3.3 高级空间排序#
# 找出/home下最大的5个目录(按MB排序)
du -m /home/* | sort -nr | head -5
# 交互式分析目录树(需安装ncdu)
ncdu /opt3.4 跨文件系统分析#
# 不追踪符号链接指向的实际路径(避免跨FS重复统计)
du -h -P /data/linked_dir
# 仅统计当前文件系统的空间(忽略挂载点)
du -x /mnt/multi_fs4 常见问题排查技巧#
4.1 空间不一致问题#
- 现象:
df显示磁盘已满但du统计较小
原因:文件被删除但进程仍持有句柄(空间未释放)
解决:lsof | grep deleted找到相关进程并重启
4.2 权限不足导致统计遗漏#
# 使用sudo统计受保护目录(注意权限风险)
sudo du -sh /root/
# 跳过无权限目录(避免错误中断)
du -h --no-ignore-fail 2>/dev/null /sys4.3 大文件快速定位#
# 实时扫描大文件(>100MB)
find / -type f -size +100M -exec du -h {} + 2>/dev/null5 最佳实践总结#
- 定期监控:通过 Cron 任务定时运行
du记录空间趋势# 每周日早上5点记录/home使用情况 0 5 * * 0 du -sh /home > ~/disk_usage.log - 安全扫描:避免对
/proc,/sys等虚拟文件系统直接使用du - 脚本集成:结合
awk处理自动化阈值告警usage=$(du -m /data | awk '{print $1}') [ $usage -gt 1024 ] && echo "WARNING: /data >1GB!" - 存储优化:对长期增长的目录(如日志)实施轮转策略(logrotate)
- 跨平台一致性:在脚本中明确指定单位(如
-k)避免不同系统格式差异
6 结语#
du 命令作为 Linux 存储管理的基石工具,其强大之处在于精准的空间可视化能力。掌握本文涵盖的技巧后,您将能快速定位磁盘空间瓶颈,制定有效的清理策略,并构建自动化的存储监控方案。持续探索 du 与其他命令(如 find, sort, ncdu)的组合应用,可进一步提升您的系统管理效率。
7 参考资料#
- GNU Coreutils 手册: https://www.gnu.org/software/coreutils/manual/
- Linux Man Pages:
man du/info du - Filesystem Hierarchy Standard (FHS): https://refspecs.linuxfoundation.org/fhs.shtml
- Advanced Disk Usage Analyzer:
ncdu官方文档 https://dev.yorhel.nl/ncdu
最后更新: 2023年10月 | 作者: Linux 存储管理专家
版权声明: 本文采用 CC BY-SA 4.0 许可协议