摘要:预防磁盘满溢:当磁盘分区使用率接近 100% 时,系统会无法创建新文件、写入日志,甚至导致服务崩溃(如数据库无法写入数据)。通过 df 可实时监控分区使用率,提前清理空间;定位大文件/目录:若磁盘空间骤降,需通过 du 快速找到占用空间过大的文件或目录(如冗余
Linux 系统中,磁盘空间不足会直接导致严重问题,以下场景必须依赖 df/du 工具:
预防磁盘满溢:当磁盘分区使用率接近 100% 时,系统会无法创建新文件、写入日志,甚至导致服务崩溃(如数据库无法写入数据)。通过 df 可实时监控分区使用率,提前清理空间;定位大文件/目录:若磁盘空间骤降,需通过 du 快速找到占用空间过大的文件或目录(如冗余日志、未清理的备份文件),避免盲目删除;评估存储规划:在部署新服务(如搭建文件服务器、数据库)前,需通过 df 了解各分区剩余空间,判断是否需要扩容或调整存储路径;排查异常占用:部分场景下,已删除的文件可能因进程未释放句柄而继续占用磁盘空间(“僵尸文件”),需结合 df 与 du 的差异定位此类问题。在使用 df/du 前,需先理解 Linux 磁盘管理的两个核心概念:
磁盘分区:Linux 将物理磁盘划分为多个“分区”(如 /dev/sda1、/dev/mapper/centos-root),每个分区对应一个“挂载点”(如 /、/home、/var),用户通过挂载点访问分区;空间单位:磁盘空间通常以字节(Byte)为基础单位,常用换算关系为:1KB = 1024B,1MB = 1024KB,1GB = 1024MB,1TB = 1024GB。df/du 支持多种单位显示,需根据需求选择。df(全称“Disk Free”)是 Linux 系统自带的基础工具,主要用于查看磁盘分区的整体使用情况,包括总空间、已用空间、剩余空间及使用率。它的核心优势是“全局视角”,可快速掌握所有挂载分区的空间状态。
df 命令的基本格式极为简单,在终端中直接输入即可查看所有挂载分区的空间信息:
df也可指定具体分区或挂载点,仅查看目标对象的信息:
df [选项] [分区/挂载点]例如,仅查看 /home 挂载点的空间情况:
df /home执行 df 后,默认输出如下(以 CentOS 7 系统为例):
Filesystem 1K-blocks Used Available Use% Mounted on/dev/mapper/centos-root 52403200 1830400 50572800 4% /devtmpfs 4030464 0 4030464 0% /devtmpfs 4042240 0 4042240 0% /dev/shmtmpfs 4042240 8704 4033536 1% /runtmpfs 4042240 0 4042240 0% /sys/fs/cgroup/dev/sda1 508588 12340 496248 3% /boot/dev/mapper/centos-home 26201088 12340 26188748 1% /hometmpfs 808448 0 808448 0% /run/user/0各列含义解读如下:
列名含义Filesystem磁盘分区的设备文件名(如 /dev/mapper/centos-root 是系统根分区)1K-blocks分区总空间,单位为 1KB(默认单位)Used已使用空间,单位为 1KBAvailable可用空间(实际可使用的空间,不含系统预留空间),单位为 1KBUse%分区使用率(已用空间占总空间的百分比),核心指标(通常 >85% 需警惕)Mounted on分区的挂载点(如 / 是根目录,/home 是用户主目录分区)注意:默认输出中,devtmpfs、tmpfs 等是“临时文件系统”,存储于内存中,并非物理磁盘分区,无需关注其空间占用。
默认输出的单位(1KB)不够直观,且信息可能冗余。df 提供了多个实用选项,可根据需求优化输出:
-h(human-readable):以“人类可读”的单位(KB、MB、GB、TB)显示空间大小,最常用选项。示例:
df -h输出如下(单位自动适配大小):
Filesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 50G 1.8G 48G 4% /devtmpfs 3.9G 0 3.9G 0% /devtmpfs 3.9G 0 3.9G 0% /dev/shmtmpfs 3.9G 8.5M 3.9G 1% /runtmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup/dev/sda1 497M 12M 485M 3% /boot/dev/mapper/centos-home 25G 12M 25G 1% /home该选项让空间大小一目了然(如 50G、3.9G),是日常使用的首选。
-k/-m/-g:强制以 KB/MB/GB 为单位显示(-k 是默认值,可省略)。示例:以 MB 为单位查看 /boot 分区:
df -m /boot输出:
示例:
df -hT /home输出:
Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/centos-home xfs 25G 12M 25G 1% /home常见文件系统类型:
ext4:Linux 传统文件系统,兼容性好;xfs:CentOS 7+、RHEL 7+ 默认文件系统,支持大分区、高性能;tmpfs:临时文件系统,基于内存,重启后数据丢失。-t 类型(type):仅显示指定文件系统类型的分区。示例:仅查看 xfs 类型的分区:
df -hT -t xfs-x 类型(exclude-type):排除指定文件系统类型的分区(常用于过滤 tmpfs 等临时分区)。示例:查看所有非 tmpfs 类型的分区:
df -hT -x tmpfs除了“空间大小”,Linux 磁盘分区还存在“inode”资源——inode 是用于存储文件元信息(如文件名、权限、修改时间)的索引节点,每个文件对应一个 inode。当 inode 耗尽时,即使磁盘仍有空间,也无法创建新文件。
-i(inodes):显示分区的 inode 使用情况(总数量、已用数量、可用数量、使用率)。示例:
df -hi /输出:
Filesystem Inodes IUsed IFree IUse% Mounted on/dev/mapper/centos-root 3276800 1892 3274908 1% /若 IUse% 接近 100%,需删除大量小文件(如日志碎片)释放 inode。
来源:wljslmz一点号