服务器测评网
我们一直在努力

Linux检查磁盘命令有哪些,如何查看磁盘剩余空间

在Linux服务器运维与系统管理中,磁盘空间的管理与监控是保障系统稳定运行的核心环节,无论是防止因磁盘写满导致的服务宕机,还是快速定位占用空间的异常文件,精准的磁盘检查能力都是运维人员必备的专业技能。Linux磁盘检查的核心在于掌握 dfdulsblk 等基础命令的组合使用,并辅以 smartctl 进行健康度监测,从而实现从宏观空间概览到微观文件清理的全方位管理。

Linux检查磁盘命令有哪些,如何查看磁盘剩余空间

宏观空间概览:df 命令的深度应用

df(disk free)命令是检查文件系统磁盘空间占用情况的首选工具,它能快速显示整个文件系统的可用空间,为了获得更直观和专业的输出,建议结合 -h(human-readable)和 -T(type)参数使用。

基础查看与文件系统类型识别
使用 df -hT 可以列出所有已挂载的文件系统,包括文件系统类型(如ext4、xfs)、总容量、已用空间、可用空间以及挂载点,这对于快速判断哪个分区即将爆满至关重要,在专业运维中,特别关注 (根目录)和 /var(日志目录)的使用率。

Inode 使用率监控
很多时候,磁盘空间虽然未满,但无法创建新文件,这通常是Inode耗尽所致,使用 df -i 可以查看Inode的使用情况。Inode用于存储文件元数据,当系统存在大量小文件时,Inode会先于Block被耗尽。 如果发现Inode使用率过高,通常需要检查是否有大量临时小文件堆积,如数万个session文件或未清理的邮件队列。

微观目录分析:du 命令的精准定位

df 确认某个分区空间不足时,du(disk usage)命令用于深入目录层级,定位具体占用空间的文件或目录。du 的统计涉及磁盘I/O,在大目录下运行较慢,因此需要精准使用参数。

快速定位大目录
使用 du -sh /* 可以查看根目录下一级子目录的大小,-s(summary)表示汇总每个参数的总计,-h 表示人类可读格式,为了进一步排查,可以使用 --max-depth 参数限制层级,du -h --max-depth=2 /var

排序与查找最大文件
为了更高效地找出占用空间最大的“罪魁祸首”,通常结合 sort 命令使用。du -sh * | sort -rh,这里 -r 表示逆序,-h 表示人类可读数字排序。这是一个非常实用的专业组合,能瞬间将当前目录下最大的子目录排在最前面。

Linux检查磁盘命令有哪些,如何查看磁盘剩余空间

查找系统中最大的具体文件可以使用 find 命令配合 dufind / -type f -size +500M 2>/dev/null | xargs du -sh | sort -rh | head -n 10,这条命令能找出全系统大于500MB的文件并按大小排序,是清理磁盘空间的利器。

硬件与分区信息:lsblk 与 fdisk

除了文件系统层面的空间检查,了解底层的磁盘分区和硬件挂载情况同样重要。

lsblk 查看块设备树
lsblk 命令默认以树状图形式列出所有块设备,能清晰展示磁盘与分区之间的逻辑关系以及挂载点,加上 -f 参数还可以显示文件系统类型、UUID和LABEL。UUID在配置 /etc/fstab 实现自动挂载时比设备名(如/dev/sda1)更稳定可靠,因为设备名可能会在系统重启后发生变化。

fdisk 查看详细分区布局
对于更底层的分区操作,fdisk -l 是经典工具,它能显示磁盘的扇区大小、起始扇区、结束扇区等详细信息,在处理磁盘扩容或分区对齐问题时,这些底层信息是必不可少的参考依据。

磁盘健康与修复:smartctl 与 fsck

磁盘检查不仅限于空间,还包括物理介质的健康状况和文件系统的一致性。

SMART 健康监测
smartctl 是SMART(Self-Monitoring, Analysis and Reporting Technology)工具的控制程序,使用 smartctl -H /dev/sda 可以快速查看磁盘健康状态是否通过,更详细的检测可以使用 smartctl -a /dev/sda,查看磁盘的通电时间、温度、坏块计数等关键指标。定期检查SMART信息可以提前预测磁盘故障,实现数据的安全迁移,避免灾难性数据丢失。

Linux检查磁盘命令有哪些,如何查看磁盘剩余空间

文件系统修复 fsck
当系统出现非正常关机或文件系统报错时,需要使用 fsck(File System Consistency Check)进行修复。注意,fsck 必须在分区未挂载的状态下运行,否则可能会破坏数据。 对于根分区,通常需要进入单用户模式或使用Live CD进行修复,针对不同的文件系统,应使用对应的工具,如 fsck.ext4xfs_repair(XFS文件系统通常使用 xfs_repair 而非通用的 fsck)。

专业解决方案与最佳实践

在实际生产环境中,建议建立自动化的磁盘监控脚本,可以设置一个阈值(如85%),当 df 检测到使用率超过该值时,自动发送告警邮件,应定期清理日志文件(如 /var/log 下的旧日志)和临时文件(/tmp)。

对于 dudf 结果不一致的情况,通常是因为已删除的文件仍被进程占用(句柄未释放),此时使用 lsof | grep deleted 可以找到这些被删除但空间未释放的文件,重启对应服务即可回收空间。

相关问答

Q1:为什么 df 显示磁盘已满,但 du 统计的占用空间却很少?
A: 这种情况通常是因为有文件被删除了,但仍有正在运行的进程占用着该文件的句柄,导致系统无法真正释放磁盘空间,解决方法是使用 lsof | grep deleted 命令查找被删除但仍被打开的文件,然后重启对应的进程或服务,空间即可回收。

Q2:如何在不重启服务器的情况下,让新添加的磁盘被系统识别?
A: 在Linux中,可以通过扫描 SCSI 总线来重新识别设备而不必重启,对于 SCSI 或 SATA 磁盘,可以使用命令 echo "-" > /sys/class/scsi_host/hostX/scanhostX 需要替换为实际的主机号(如 host0),如果是云服务器,通常在控制台挂载后,使用 lsblkpartprobe 即可直接刷新分区表。
能帮助您全面掌握Linux磁盘检查的技巧,如果您在日常运维中遇到了特殊的磁盘空间问题,或者有更高效的排查命令,欢迎在评论区分享您的经验和见解。

赞(0)
未经允许不得转载:好主机测评网 » Linux检查磁盘命令有哪些,如何查看磁盘剩余空间