简介
在本实验中,你将探索 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
设备可能是一个虚拟磁盘,我们还可以看到一个 tmpfs
文件系统挂载在 /mnt/ramdisk
,这是一个基于 RAM 的文件系统。
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
挂载点。了解文件系统类型可以帮助你排查问题并优化系统性能。
在 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 磁盘使用情况)以及各种系统监控工具。