介绍
在本实验中,你将探索 df 命令,这是 Linux 系统中用于监控磁盘空间使用情况的关键工具。你将扮演一名管理繁忙 Web 服务器的系统管理员,使用 df 来分析磁盘使用情况、识别潜在的存储问题,并确保服务器的平稳运行。本实验专为初学者设计,所以如果你是 Linux 新手也不必担心——我们会仔细引导你完成每一个步骤。
在本实验中,你将探索 df 命令,这是 Linux 系统中用于监控磁盘空间使用情况的关键工具。你将扮演一名管理繁忙 Web 服务器的系统管理员,使用 df 来分析磁盘使用情况、识别潜在的存储问题,并确保服务器的平稳运行。本实验专为初学者设计,所以如果你是 Linux 新手也不必担心——我们会仔细引导你完成每一个步骤。
作为系统管理员,你的首要任务是全面了解 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 设备可能是一个虚拟磁盘,我们还可以看到一个挂载在 /mnt/ramdisk 的 tmpfs 文件系统,这是一个基于内存的文件系统。
df 的默认输出以 1KB 块为单位显示大小,这可能很难快速解读。想象一下,试图算出 20640796 个 1KB 块是多少 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:这是一种联合文件系统(union filesystem),常用于容器化环境。tmpfs:这是一种驻留在内存和/或交换分区中的临时文件系统。xfs:这是一种高性能的日志文件系统,此处用于 /etc/hosts 挂载。了解文件系统类型可以帮助你排查问题并优化系统性能。
在 Linux 中,索引节点(inode)是存储文件重要信息的数据结构,例如权限、所有权和在磁盘上的位置。系统中的每个文件都会占用一个索引节点。有趣的是,即使磁盘空间充足,索引节点也可能会耗尽,这将导致你无法创建新文件。这就是为什么监控索引节点使用情况至关重要的原因。
让我们使用 -i 选项检查索引节点使用情况:
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:文件系统的索引节点总数IUsed:当前已使用的索引节点数量IFree:空闲的索引节点数量IUse%:已使用的索引节点百分比在这个例子中,我们可以看到主文件系统(overlay)仅使用了 2% 的可用索引节点。这很好——这意味着我们离耗尽索引节点还很远,不会出现因索引节点不足而无法创建新文件的情况。
现在我们已经探索了单个选项,让我们将它们组合起来,以便更全面地查看服务器的存储状况。我们可以同时使用多个选项,通过一个命令获取所需的所有信息。
运行以下命令:
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 分析索引节点使用情况-x 排除某些文件系统类型--total 显示总计摘要这些技能对于有效的系统管理和确保 Linux 服务器的最佳性能至关重要。随着你在系统管理领域的不断深入,你会发现 df 命令是工具箱中不可或缺的工具。
本实验未涵盖的其他 df 选项包括:
-a:显示所有文件系统,包括虚拟的、重复的和不可访问的文件系统-k:以 KB 为单位显示大小(默认)-m:以 MB 为单位显示大小-P:使用 POSIX 输出格式--sync:在获取使用信息之前调用 sync-t:仅列出特定类型的文件系统请记住,虽然 df 功能强大,但它只是监控磁盘使用的众多工具之一。随着你在 Linux 学习之路上的进步,你可能还想探索其他命令,如 du(磁盘使用量)、ncdu(基于 NCurses 的磁盘使用量分析)以及各种系统监控工具。