在 Linux 中如何使用 df 命令检查磁盘空间使用情况?

问题浏览数Icon
54
问题创建时间Icon
2025-06-12 17:20:00
作者头像
firezone88

在 Linux 中,使用 df -h 命令查看磁盘空间使用情况,-h 参数以易读格式(如 GB、MB)显示信息。

更多回答

作者头像
sunnybird09

作为IT经理,建议使用df -h命令以人类可读的格式快速查看所有挂载点的磁盘使用率,重点关注关键分区(如根目录/、/var、/home)。对于生产服务器,建议结合df -i检查inode使用情况,避免因小文件过多导致服务异常。监控关键指标时可使用df --output=source,pcent精准获取百分比,并建议将阈值纳入监控系统(如超过85%触发告警)。定期通过crontab设置自动化检查脚本,及时预警容量风险。

作者头像
leafrider6

为何不试试使用 du 命令深入分析特定目录的磁盘占用情况,或许能更精确地定位问题?

作者头像
netchase88

在Linux中使用df命令检查磁盘空间时,我的实践经验分为三个层面:

  1. 基础用法

    • 默认df输出以1K为单位的块信息,常配合-h参数(如df -h)以人类可读格式(GB/MB)展示。
    • 通过-t ext4-x tmpfs过滤特定文件系统类型,避免无关数据干扰(例如排查宿主机存储时排除容器虚拟层)
  2. 高级场景实践

    • 在虚拟化环境中,动态扩展磁盘后需使用df -Th确认文件系统类型及实际扩容生效情况。曾遇到客户机ext4未resize2fs导致df显示未变化的情况。
    • 使用--output=source,size,avail,pcent定制输出字段,配合脚本自动化监控阈值(如超过85%触发告警)。
  3. 挑战与解决方案

    • NFS卡顿:通过df -P强制单行输出避免因NFS挂载点无响应导致命令卡死,必要时用timeout 3 df -h设置超时。
    • inode耗尽:用df -i独立监控,曾遇到Docker日志暴增占满inode但常规空间正常的case。
    • 容器误判:容器内执行df可能显示宿主机全局存储,需结合nsenter或宿主级监控工具交叉验证。

关键洞察:始终将dflsblkmount及存储后台管理工具(如Ceph的ceph df)联合使用,避免单一命令的局限性。

作者头像
starhunter88

步骤:

  1. 打开终端:通过快捷方式或Ctrl+Alt+T启动命令行界面。
  2. 输入基本命令:执行df查看原始数据(单位为KB)。
  3. 使用可读格式:加-h参数(df -h),将空间自动转换为GB/MB,便于理解。
  4. 过滤文件系统类型:用-T显示类型(如ext4/tmpfs),排除内存盘干扰:df -hT
  5. 定位特定目录:添加路径参数(例:df -h /home),查看目标挂载点详情。
  6. 重点关注列:检查"Use%"超过90%的分区,此类情况需清理或扩容。

附:使用--output定制输出(例:df --output=source,used,avail,pcent)可仅展示核心字段。

作者头像
silentfox33

在 Linux 中,使用 df -h 命令可以以易读的格式(如GB、MB)查看磁盘空间使用情况。添加 -T 选项可同时显示文件系统类型(如ext4、xfs)。

延伸知识点:理解 inode 与磁盘空间

使用 df -i 可检查 inode 使用情况。inode 存储文件的元数据(权限、时间戳等)。若磁盘空间充足但 inode 耗尽,仍无法创建新文件。此问题常见于存在大量小文件的场景(如日志系统)。通过 ls -i 查看文件 inode 编号,或用 find /path -type f | wc -l 统计文件数量定位异常。解决方案包括删除冗余小文件或重新格式化分区并分配更多 inode。