CentOS服务器下查看磁盘空间和使用情况的常用命令有哪些?

在 CentOS 系统管理中,监控和管理磁盘空间是一项至关重要的日常任务,无论是为了防止系统因磁盘空间耗尽而崩溃,还是为了进行容量规划、排查性能瓶颈,熟练掌握查看磁盘信息的命令都是每一位系统管理员必备的技能,CentOS 作为基于 Linux 内核的企业级操作系统,提供了一系列强大而灵活的命令行工具,可以让我们从不同维度、不同深度地了解磁盘状态,本文将系统性地介绍几个最核心、最常用的磁盘查看命令,并通过实例解析其用法与输出含义,帮助您构建完整的磁盘管理知识体系。

CentOS服务器下查看磁盘空间和使用情况的常用命令有哪些?

df 命令:文件系统空间概览

df(Disk Filesystem)命令是最基础也是最常用的磁盘空间查看工具,它用于显示文件系统的磁盘空间使用情况,通过 df,我们可以快速了解各个分区已用、可用的空间以及使用百分比。

最常用的参数组合是 -h(human-readable),它将以 KB、MB、GB 等更易读的格式显示容量,而不是默认的 1K 块。

df -h

输出结果通常如下所示:

文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        3.9G     0  3.9G    0% /dev
tmpfs           3.9G     0  3.9G    0% /dev/shm
tmpfs           3.9G  8.6M  3.9G    1% /run
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/vda1        50G   15G   33G   32% /
tmpfs           784M     0  784M    0% /run/user/0

输出解读:

  • 文件系统: 分区的设备名称,如 /dev/vda1
  • 容量: 分区总大小。
  • 已用: 已使用的空间。
  • 可用: 剩余可用空间。
  • 已用%: 空间使用百分比,这是判断磁盘是否即将满载的关键指标。
  • 挂载点: 该分区挂载到的系统目录。

除了 -h-T 参数也很有用,它会额外显示文件系统的类型(如 ext4, xfs)。

df -hT

-i 参数用于查看 inode 的使用情况,有时即使磁盘空间还有剩余,但由于 inode 耗尽,也无法创建新文件。

df -i

lsblk 命令:块设备树状结构

lsblk(List Block Devices)命令以树状结构列出所有可用的块设备(磁盘、分区、LVM等),其输出直观地展示了设备间的层级关系,它不显示空间使用情况,而是专注于设备的物理和逻辑结构。

直接运行 lsblk 即可:

lsblk

输出示例如下:

CentOS服务器下查看磁盘空间和使用情况的常用命令有哪些?

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    252:0    0   50G  0 disk
└─vda1 252:1    0   50G  0 part /

输出解读:

  • NAME: 设备名称。
  • MAJ:MIN: 主设备号和次设备号。
  • RM: 是否为可移动设备(1表示是,0表示否)。
  • SIZE: 设备容量。
  • RO: 是否为只读(1表示是,0表示否)。
  • TYPE: 设备类型(disk表示磁盘,part表示分区)。
  • MOUNTPOINT: 挂载点。

从上面的例子可以清晰地看到,vda 是一块 50G 的磁盘,它包含一个名为 vda1 的分区,该分区挂载在根目录 下。

fdiskgdisk 命令:磁盘分区详情

fdiskgdisk 是强大的磁盘分区工具,但它们也常被用来查看磁盘的分区表信息。fdisk 主要用于 MBR 分区表,而 gdisk 用于 GPT 分区表。

使用 -l 参数可以列出系统中所有磁盘的分区布局。

sudo fdisk -l

输出会包含非常详细的分区信息,包括磁盘的扇区总数、每个分区的起始和结束扇区、分区 ID(如 83 表示 Linux,82 表示 Linux swap)等,这对于底层磁盘管理和故障排查非常有价值。

对于 GPT 格式的磁盘,应使用 gdisk -l

du 命令:目录与文件空间占用

df 查看文件系统级别的空间使用不同,du(Disk Usage)命令用于查看指定目录或文件所占用的磁盘空间,这是定位“大文件”或“大目录”从而清理空间的利器。

最常用的组合是 du -sh *

  • -s(summarize): 只显示总计,不列出每个子目录的详情。
  • -h(human-readable): 以易读格式显示。
  • 表示当前目录下的所有文件和目录。
# 查看当前目录下各个子目录的大小
du -sh *
# 查看某个特定目录(如 /var)的总大小
du -sh /var
# 查看当前目录下所有文件和目录的大小,并按大小排序
du -ah | sort -rh | head -n 10

最后一个命令组合非常强大,它可以快速找出占用空间最多的前 10 个文件或目录。

CentOS服务器下查看磁盘空间和使用情况的常用命令有哪些?

命令对比与实战应用

为了更清晰地理解这些命令的区别,下表对它们进行了小编总结:

命令 主要用途 信息层级 常用选项 输出特点
df 查看文件系统总空间使用情况 文件系统级别 -h, -T, -i 汇总性,显示整体使用率
lsblk 查看块设备及其层级关系 物理设备级别 -f, -m 树状结构,直观展示设备关系
fdisk -l 查看磁盘分区表详情 分区表级别 -l 极其详细,包含扇区等底层信息
du 查看目录/文件的具体占用空间 文件/目录级别 -h, -s, --max-depth 递归统计,精确定位空间占用源

实战场景:根目录空间告警,如何快速定位问题?

  1. 第一步:宏观查看,使用 df -h 确认是哪个分区(通常是 )空间不足。
  2. 第二步:定位大目录,进入根目录 cd /,然后使用 du -sh * 查看哪个一级目录占用空间最大,比如发现 /var 目录特别大。
  3. 第三步:深入排查,进入 /var 目录,再次使用 du -sh *,或者使用 du -ah | sort -rh | head -n 10 找出最大的文件或子目录。
  4. 第四步:清理或处理,根据排查结果,对大文件(如日志文件、临时文件)进行清理、归档或移动。

相关问答 FAQs

Q1: 为什么 df 命令显示的磁盘空间使用率很高,但用 du 命令统计所有目录的大小之和却远没有那么大?

A1: 这是一个在 Linux 系统中很常见的问题,主要原因通常是某个已经被删除的文件,但仍有正在运行的进程在引用它。df 统计的是文件系统分配给文件的空间,只要文件还被进程占用,空间就不会被释放;而 du 统计的是目录树中实际可见的文件,被删除的文件已经不在目录树中,du 不会统计它,要找到这类文件,可以使用 lsof | grep '(deleted)' 命令,它会列出所有被删除但仍被进程打开的文件,重启或终止相应的服务进程后,磁盘空间通常就会被释放。

Q2: 除了查看空间使用,如何监控磁盘的读写性能(I/O)?

A2: CentOS 提供了专门的工具来监控磁盘 I/O 性能,最常用的两个是 iostatiotop

  • iostat: 属于 sysstat 软件包,使用 iostat -x 1 命令可以每秒动态刷新一次,显示详细的磁盘 I/O 统计信息,包括设备名、每秒读取/写入的扇区数、每秒读取/写入的请求数、队列长度、等待时间等。%util 列是关键指标,它表示磁盘 I/O 的繁忙程度,如果持续接近 100%,说明磁盘已成为性能瓶颈。
  • iotop: 类似于 top 命令,但用于监控 I/O,它会实时显示哪些进程正在进行大量的读写操作,并按 I/O 使用率排序,使用 sudo iotop 运行,可以快速定位到是哪个进程在“拖慢”磁盘。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-03 08:53
下一篇 2025-10-03 08:55

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信