在 CentOS 7 系统的日常管理和维护中,监控磁盘空间是一项基础且至关重要的工作。df 命令便是我们完成这项工作的得力助手,它能清晰展示文件系统的磁盘使用情况,帮助我们及时发现潜在的存储问题。

认识 df 命令:磁盘空间的侦察兵
df,全称为 “Disk Filesystem”,其核心功能是报告文件系统的磁盘空间使用情况,对于网站运维人员或系统管理员而言,它就像是系统的“侦察兵”,随时汇报各个挂载点的空间余量,避免因磁盘写满而导致服务中断、数据丢失等严重故障。
在终端中直接输入 df 并回车,你会看到一个简洁的列表:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 41151808 8565960 30490352 22% /
devtmpfs 930660 0 930660 0% /dev
tmpfs 941292 0 941292 0% /dev/shm
tmpfs 941292 16996 924296 2% /run
tmpfs 941292 0 941292 0% /sys/fs/cgroup 这个默认输出以 1K 块为单位显示数据,虽然信息全面,但在阅读上可能不够直观。
让信息更易读:-h 参数的力量
为了解决可读性问题,我们最常使用的参数是 -h(--human-readable),它会自动以 K(千字节)、M(兆字节)、G(吉字节)等单位来显示数据,让大小一目了然。
命令示例:
df -h
输出效果:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 8.2G 30G 22% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 17M 903M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup 对比之下,使用 -h 参数后的输出显然更易于快速理解和判断,我们能立刻看出根目录()使用了 8.2G 空间,剩余 30G,使用率为 22%,状态健康。
深入探究:常用参数详解
除了 -h,df 命令还有其他一些实用参数,能帮助我们获取更具体的信息。
查看 Inode 使用情况:
-i磁盘空间未满,但系统却提示“No space left on device”?这很可能是 inode 耗尽了,Inode 存储着文件的元信息(如权限、所有者、数据块位置等),当系统中存在大量微小文件时,可能会在磁盘空间充足的情况下耗尽 inode,使用df -i或df -ih可以查看 inode 的使用情况。
命令示例:
df -ih
显示特定文件系统类型:
-T该参数可以显示文件系统的类型(如 ext4、xfs、tmpfs 等),帮助我们了解不同分区所使用的技术。命令示例:
df -Th
输出片段:
Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 40G 8.2G 30G 22% / devtmpfs devtmpfs 909M 0 909M 0% /dev tmpfs tmpfs 920M 0 920M 0% /dev/shm从输出中,我们可以清晰地看到根目录使用的是 ext4 文件系统,而
/dev和/dev/shm则使用了基于内存的临时文件系统。排除特定类型:
-x有时我们想排除某些文件系统类型,例如不想显示临时文件系统(tmpfs)或网络文件系统(nfs),以使输出更专注于本地磁盘,可以使用-x参数。命令示例(排除所有类型为 tmpfs 的文件系统):
df -h -x tmpfs
实战场景:当磁盘空间告急时
假设我们通过 df -h 发现根目录()的使用率超过了 90%,我们需要快速定位是哪些文件或目录占用了大量空间,这时,df 的搭档 du(Disk Usage)命令就该上场了。
一个标准的排查流程如下:

使用
df确认问题范围:df -h
确认是哪个挂载点空间紧张,。
使用
du逐层定位大文件/目录: 从根目录开始,逐级深入,找到占用空间最大的目录。# 查看根目录下各文件夹的大小(仅显示顶层) du -sh /* 2>/dev/null | sort -hr
这个命令会以人类可读的格式(
-h)显示根目录下所有一级子目录和文件的总大小(-s),并将结果按大小逆序排序(sort -hr)。2>/dev/null是为了忽略没有访问权限的目录产生的错误信息,让输出更整洁。持续深入: 假设发现
/var目录非常大,我们可以继续深入:du -sh /var/* 2>/dev/null | sort -hr
如此反复,直到找到那些日志文件、缓存文件或用户上传的大文件等。
通过 df 和 du 的配合使用,我们就能像侦探一样,从文件系统层面一路追踪到具体的“罪魁祸首”,从而进行清理、归档或扩容等操作。
个人观点
在我看来,df 命令的价值远不止于一个简单的查询工具,它是系统健康度的一个直观仪表盘,养成定期运行 df -h 的习惯,是一种低成本、高回报的运维实践,它能让你在用户抱怨网站变慢或无法上传文件之前,就主动发现并解决磁盘空间问题,对于 CentOS 7 这样的稳定系统,许多问题都是渐进式的,磁盘空间耗尽正是其中之一,掌握好 df 及其相关命令,就如同为你的服务器上了一道重要的保险,能有效提升系统的稳定性和你的运维效率,在服务器管理上,主动预防远比被动响应来得轻松和可靠。

