Linux df 命令:磁盘空间报告

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将探索 df 命令,这是一个用于监控 Linux 系统磁盘空间使用情况的关键工具。你将扮演一名系统管理员的角色,负责管理一台繁忙的 Web 服务器,使用 df 来分析磁盘使用情况,识别潜在的存储问题,并确保服务器的平稳运行。本实验专为初学者设计,因此如果你是 Linux 新手,也不必担心——我们将逐步引导你完成每个步骤。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/SystemInformationandMonitoringGroup(["`System Information and Monitoring`"]) linux/SystemInformationandMonitoringGroup -.-> linux/df("`Disk Space Reporting`") subgraph Lab Skills linux/df -.-> lab-219188{{"`Linux df 命令:磁盘空间报告`"}} end

理解基本的 df 命令

作为一名系统管理员,你的首要任务是获取 Web 服务器磁盘空间使用情况的概览。不带任何选项的 df 命令可以快速显示所有已挂载文件系统的快照。

首先,让我们导航到项目目录:

cd ~/project

现在,运行基本的 df 命令:

df

提示:由于虚拟机存储的动态变化,df 命令的输出可能不一致,此问题可以忽略。

你应该会看到类似以下的输出:

Filesystem     1K-blocks     Used Available Use% Mounted on
overlay         20971520  1314600  19656920   7% /
tmpfs              65536        0     65536   0% /dev
tmpfs            4068320        0   4068320   0% /sys/fs/cgroup
shm                65536        0     65536   0% /dev/shm
/dev/vdb       104806400 17442788  87363612  17% /etc/hosts
tmpfs             102400    51200     51200  50% /mnt/ramdisk

让我们分解一下这个输出:

  • Filesystem:此列显示设备或分区的名称。
  • 1K-blocks:显示文件系统的总大小,以 1KB 块为单位。
  • Used:表示已使用的 1KB 块数。
  • Available:显示可用的 1KB 块数。
  • Use%:显示文件系统的使用百分比。
  • Mounted on:显示文件系统在目录树中的挂载位置。

请注意 overlay 文件系统,它通常用于容器化环境。/dev/vdb 设备可能是一个虚拟磁盘,我们还可以看到一个 tmpfs 文件系统挂载在 /mnt/ramdisk,这是一个基于 RAM 的文件系统。

使 df 输出更易读

df 的默认输出以 1K 块为单位显示大小,这可能难以快速理解。想象一下,尝试计算 20640796 个 1K 块是多少 GB!幸运的是,我们可以使用 -h 选项(代表 "human-readable",即人类可读)来使输出更易于理解。

运行以下命令:

df -h

你应该会看到类似以下的输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk

请注意,现在的大小以 GB 和 MB 为单位显示。这样一目了然,更容易理解。例如,我们可以快速看到主文件系统(overlay)的大小为 20G,已使用 1.3G,剩余 19G 可用。

显示文件系统类型

作为一名系统管理员,了解服务器上的文件系统类型非常重要。不同的文件系统类型具有不同的特性和性能表现。-T 选项允许你查看这些信息。

运行以下命令:

df -T

你应该会看到类似以下的输出:

Filesystem     Type    1K-blocks     Used Available Use% Mounted on
overlay        overlay  20971520  1314600  19656920   7% /
tmpfs          tmpfs       65536        0     65536   0% /dev
tmpfs          tmpfs     4068320        0   4068320   0% /sys/fs/cgroup
shm            tmpfs       65536        0     65536   0% /dev/shm
/dev/vdb       xfs     104806400 17442728  87363672  17% /etc/hosts
tmpfs          tmpfs      102400    51200     51200  50% /mnt/ramdisk

此输出包含一个新列 Type,它显示了每个挂载文件系统的类型。让我们看看这些类型:

  • overlay:这是一种联合文件系统,通常用于容器化环境。
  • tmpfs:这是一种临时文件系统,驻留在内存和/或交换分区中。
  • xfs:这是一种高性能的日志文件系统,在此用于 /etc/hosts 挂载点。

了解文件系统类型可以帮助你排查问题并优化系统性能。

分析 Inode 使用情况

在 Linux 中,inode 是存储文件重要信息的数据结构,例如文件的权限、所有权以及磁盘上的位置。系统中的每个文件都会占用一个 inode。有趣的是,即使磁盘空间充足,也可能会耗尽 inode,这将导致无法创建新文件。因此,监控 inode 使用情况至关重要。

让我们使用 -i 选项检查 inode 使用情况:

df -i

你应该会看到类似以下的输出:

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
overlay        52428800 539001 51889799    2% /
tmpfs           1017080    206  1016874    1% /dev
tmpfs           1017080     17  1017063    1% /sys/fs/cgroup
shm             1017080      1  1017079    1% /dev/shm
/dev/vdb       52428800 539001 51889799    2% /etc/hosts
tmpfs           1017080      2  1017078    1% /mnt/ramdisk

让我们分解一下这个输出:

  • Inodes:文件系统的 inode 总数
  • IUsed:当前已使用的 inode 数量
  • IFree:空闲的 inode 数量
  • IUse%:已使用的 inode 百分比

在此示例中,我们可以看到主文件系统(overlay)仅使用了 2% 的可用 inode。这是一个好现象——这意味着我们远未耗尽 inode,即使磁盘空间充足,也不会影响新文件的创建。

结合选项进行综合分析

现在我们已经探索了单独的选项,接下来让我们结合这些选项,以更全面地了解服务器的存储情况。我们可以将多个选项组合在一起,通过一条命令获取所需的所有信息。

运行以下命令:

df -hT

此命令结合了人类可读格式(-h)和文件系统类型(-T)选项。

你应该会看到类似以下的输出:

Filesystem     Type     Size  Used Avail Use% Mounted on
overlay        overlay   20G  1.3G   19G   7% /
tmpfs          tmpfs     64M     0   64M   0% /dev
tmpfs          tmpfs    3.9G     0  3.9G   0% /sys/fs/cgroup
shm            tmpfs     64M     0   64M   0% /dev/shm
/dev/vdb       xfs      100G   17G   84G  17% /etc/hosts
tmpfs          tmpfs    100M   50M   50M  50% /mnt/ramdisk

此输出提供了文件系统的全面概览,包括它们的类型和人类可读的大小。这是快速但详细地了解系统存储情况的好方法。

关注特定文件系统

作为一名系统管理员,你可能经常需要检查特定文件系统的状态。例如,你可能希望快速检查根文件系统的空间使用情况。我们可以通过在 df 命令后指定挂载点来实现这一点。

让我们关注根文件系统。运行以下命令:

df -h /

你应该会看到类似以下的输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

此命令为你提供了根文件系统空间使用情况的快速视图。当你只对某个特定文件系统感兴趣,而不需要其他文件系统的信息时,这尤其有用。

检查用户主目录的可用空间

作为服务器管理职责的一部分,你需要确保用户在其主目录中有足够的空间。在许多系统中,用户主目录位于 /home 目录下。让我们检查 /home 目录的可用空间。

运行以下命令:

df -h /home

你可能会看到类似以下的输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

这表明 /home 目录与根目录(/)位于同一文件系统上。在这种情况下,我们可以看到用户主目录有充足的可用空间(19G)。

如果你发现文件系统即将满(Use% 值较高),你可能需要调查哪些用户占用了最多的空间,或者考虑增加存储容量。

排除特定文件系统类型

有时,你可能希望从 df 输出中排除某些文件系统类型。例如,你可能希望排除临时文件系统,这些文件系统存储在内存中,并不代表物理磁盘使用情况。我们可以使用 -x 选项来实现这一点。

运行以下命令以排除 tmpfs 文件系统:

df -h -x tmpfs

你应该会看到类似以下的输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
/dev/vdb        100G   17G   84G  17% /etc/hosts

请注意,tmpfs 文件系统不再出现在输出中。当你只对物理磁盘使用情况感兴趣并希望过滤掉虚拟文件系统时,这非常有用。

显示总摘要

作为最后的概览,让我们显示所有文件系统的总摘要。我们可以使用 --total 选项来实现这一点。当你希望查看所有文件系统的总体磁盘使用情况时,这尤其有用。

运行以下命令:

df -h --total

你应该会看到类似以下的输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk
total           125G   18G  107G  15% -

这提供了所有文件系统的磁盘使用情况的总摘要。最后一行显示了所有文件系统的总计,表明总体上,125G 中有 18G 被使用,约占可用总空间的 15%。

总结

在本实验中,你学习了如何使用 df 命令来监控和分析 Linux 系统上的磁盘空间使用情况。你探索了 df 命令的各种选项,包括:

  • df 的基本用法
  • 使用 -h 使输出更易读
  • 使用 -T 显示文件系统类型
  • 使用 -i 分析 inode 使用情况
  • 结合选项进行综合分析
  • 关注特定文件系统
  • 使用 -x 排除某些文件系统类型
  • 使用 --total 显示总摘要

这些技能对于有效的系统管理和确保 Linux 服务器的最佳性能至关重要。随着你在系统管理领域的深入学习,你会发现 df 命令是你工具箱中不可或缺的工具。

本实验未涵盖的其他 df 选项包括:

  • -a:显示所有文件系统,包括伪文件系统、重复文件系统和不可访问的文件系统
  • -k:以千字节为单位显示大小(默认)
  • -m:以兆字节为单位显示大小
  • -P:使用 POSIX 输出格式
  • --sync:在获取使用信息之前调用同步
  • -t:将列表限制为特定类型的文件系统

请记住,虽然 df 功能强大,但它只是众多监控磁盘使用情况的工具之一。随着你在 Linux 领域的深入,你可能希望探索其他命令,例如 du(磁盘使用情况)、ncdu(NCurses 磁盘使用情况)以及各种系统监控工具。

您可能感兴趣的其他 Linux 教程