在Linux系统管理中,有效监控和管理存储空间是确保服务器稳定运行的核心任务之一,对于仍可能在使用中的CentOS 6.5系统,掌握查看存储信息的命令至关重要,这些命令不仅能帮助我们了解磁盘的整体使用情况,还能深入分析目录占用、磁盘性能等细节,本文将系统性地介绍在CentOS 6.5中查看存储的多种方法,从基础概览到高级分析,并提供实用的技巧和小编总结。
基础磁盘空间查看:df
命令
df
(disk free)命令是最常用、最直接的磁盘空间查看工具,它可以显示文件系统的总容量、已用空间、可用空间和挂载点信息。
常用组合:df -hT
-h
:以人类可读的格式显示(如KB, MB, GB)。-T
:显示文件系统的类型(如ext4, xfs)。
执行 df -hT
后,你会看到类似以下的输出:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 50G 15G 33G 32% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 ext4 485M 55M 405M 12% /boot
通过这个表格,可以清晰地看到每个分区(如/dev/sda2
)的总大小、已用空间、剩余空间、使用百分比以及它挂载在哪个目录(如),这是进行容量规划的第一步。
块设备与分区结构:lsblk
与 fdisk
有时候我们不仅关心空间使用,还需要了解物理磁盘和分区的结构关系。
lsblk
命令
lsblk
(list block devices)以树状结构展示块设备(磁盘、分区、LVM等)之间的关系,非常直观,如果系统未安装,可以通过 yum install util-linux-ng
进行安装。
执行 lsblk
可能会输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part /
sr0 11:0 1 4.2G 0 rom
这个输出清晰地表明 sda
是一块50G的磁盘,它被分成了两个分区 sda1
和 sda2
,并分别挂载到了 /boot
和 。
fdisk
命令
fdisk
是一个强大的磁盘分区工具,使用 -l
参数可以列出系统的磁盘分区表。
执行 fdisk -l
会提供更详细的分区信息,包括每个分区的起始和结束扇区、ID等,这对于需要手动管理分区的场景非常有用。
目录空间占用分析:du
命令
当发现某个分区空间不足时,du
(disk usage)命令就是我们的“探照灯”,它能递归地显示指定目录或文件的磁盘占用情况。
常用组合:du -sh <目录名>
-s
:只显示总计大小。-h
:以人类可读格式显示。
要查看根目录下各个一级目录的大小,可以执行:
du -sh /*
这会快速列出 /bin
, /etc
, /var
, /home
等目录各自占用的空间,帮助我们迅速定位占用空间最大的“元凶”,如果想进一步查看 /var
目录下的情况,可以使用 du -sh /var/*
。
常用命令对比与小编总结
为了方便快速选择合适的工具,下表小编总结了上述命令的核心用途:
命令 | 主要用途 | 常用选项 | 特点 |
---|---|---|---|
df | 查看文件系统整体空间使用情况 | -h , -T | 快速、宏观,关注挂载点 |
lsblk | 查看块设备(磁盘/分区)的层级结构 | 无需选项即可 | 直观、树状,关注物理与逻辑关系 |
fdisk -l | 查看磁盘的详细分区表信息 | -l | 详细、底层,用于分区管理 |
du | 查看特定目录或文件的空间占用 | -s , -h , --max-depth | 精确、微观,用于空间清理分析 |
相关问答FAQs
为什么 df
和 du
命令显示的已用空间经常不一致?
解答: 这是一个常见现象,主要原因有以下几点:
- 文件被删除但进程仍在使用: 如果一个文件被
rm
命令删除,但仍有正在运行的进程持有该文件的句柄,那么磁盘空间不会被立即释放。df
统计的是文件系统元数据中的已用块,所以会显示这部分空间被占用;而du
扫描的是目录树,找不到该文件,所以不会计算其大小,解决方法是重启相关服务或重启系统。 - 文件系统保留空间: Linux文件系统(如ext4)默认会为
root
用户保留一部分空间(通常是5%),以防系统满盘时无法登录进行维护。df
的总容量和可用空间计算了这部分,而du
不会。 - 挂载点: 如果在一个目录上挂载了其他设备,
du
统计的是该挂载点目录下的内容,而不是该设备本身的空间。
如何查看哪个进程正在使用某个磁盘或文件?
解答: 可以使用 lsof
(list open files)命令来查看。lsof
会列出当前系统打开的所有文件以及正在使用它们的进程。
- 查看某个挂载点: 如果想查看哪个进程正在使用
/home
分区,可以执行lsof /home
。 - 查看某个文件: 如果想查看哪个进程正在使用
/var/log/messages
文件,可以执行lsof /var/log/messages
。 - 递归查看目录: 使用
+D
选项可以递归地查看某个目录下所有被打开的文件,lsof +D /var/log
,这个命令在需要卸载一个文件系统却提示“busy”时特别有用。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复