掌握df和du命令可高效监控Linux磁盘使用:df -h查看文件系统使用率,重点关注Use%;du -sh分析具体目录占用,定位空间大户;注意已删除文件句柄未释放、权限不足等问题;结合cron、脚本或监控平台实现自动化告警与趋势追踪。

监控Linux系统磁盘使用率是系统管理中的基础任务,合理使用df和du命令可以帮助快速定位存储瓶颈。这两个工具功能不同但互补:df查看文件系统级别的磁盘占用,du则统计目录或文件的实际空间使用。
df:查看文件系统整体使用情况
df(disk free)用于显示挂载文件系统的磁盘空间总量、已用空间、可用空间及使用率。默认以KB为单位输出,推荐加上-h参数获取易读格式。
-
df -h:以人类可读方式(如GB、MB)展示所有挂载点的磁盘使用情况 -
df -h /home:仅查看/home分区的使用状态 -
df --total:在末尾汇总所有文件系统的总使用量,便于批量监控
重点关注“Use%”列,超过80%建议排查,接近100%可能导致服务异常。注意df不深入目录结构,仅反映文件系统层面的数据。
du:分析具体目录与文件占用
当发现某分区使用率偏高时,需用du(disk usage)定位具体是哪些目录占用了空间。它逐层扫描目录并累加文件大小。
-
du -sh /var/log:快速查看/var/log目录总大小(-s汇总,-h可读) -
du -h --max-depth=1 /home:列出/home下各一级子目录的空间占用,帮助识别大户 -
du -a /tmp | sort -nr | head -10:找出/tmp中最大的前10个文件或目录
运行du对大目录可能较慢,建议结合nice和ionice降低对系统影响。
常见问题与避坑指南
实际使用中容易忽略一些细节导致误判:
-
已删除文件仍占空间:进程仍持有被删大文件句柄时,df显示已用空间不会减少,可用
lsof +L1查找并重启对应进程释放 - df和du结果不一致:可能是隐藏挂载(如mount --bind)、快照或上述句柄未释放问题
- 权限不足跳过目录:du遇到无权访问目录会跳过且不报错,建议用sudo提升权限确保完整统计
自动化监控建议
对于生产环境,应将磁盘监控纳入定期任务:
- 编写脚本调用
df -h,解析关键分区使用率,超阈值发送邮件或告警 - 结合cron每日执行
du -sh /path/to/appdata,记录趋势变化 - 使用
inotify监听敏感目录变动,实时响应异常增长
也可集成到Zabbix、Prometheus等监控平台实现可视化和长期追踪。
基本上就这些。掌握df和du的核心用法,再辅以权限处理和异常排查思路,就能高效应对大多数磁盘空间问题。不复杂但容易忽略细节。









