HCRM博客

CentOS查看硬盘剩余空间,查看磁盘命令是什么?

在CentOS服务器运维管理中,确保硬盘存储的合理利用是维持系统稳定性的核心任务,面对硬盘剩余空间不足的告警,管理员的核心上文归纳应当是:通过精准的命令行工具组合(如df、du)快速定位占用源,区分文件系统块占用与Inode耗尽两种情况,并依据业务场景采取日志清理、缓存释放或LVM逻辑卷扩容等专业策略,从而在保障业务不中断的前提下恢复系统健康状态。

要实现这一目标,我们需要从基础诊断、深度排查、解决方案及预防机制四个维度进行详细论证。

CentOS查看硬盘剩余空间,查看磁盘命令是什么?-图1

基础诊断:精准掌握空间分布

在处理硬盘剩余空间问题时,第一步是获取准确的存储数据,CentOS下最基础且强大的工具是dfdu

df h(Disk Free)是查看整体磁盘使用情况的首选命令,通过h参数,可以将容量以人类可读的GB、MB格式展示,便于快速评估,运维人员应重点关注“Use%”列,即使用百分比,当某个挂载点(如或/home)的使用率超过90%时,系统即进入高风险状态,使用df i命令同样重要,它能查看Inode(索引节点)的使用情况,很多时候,磁盘剩余空间尚存,但由于小文件数量过多导致Inode耗尽,系统同样无法创建新文件,这是新手容易忽视的盲点。

在确定哪个分区空间紧张后,需要使用du(Disk Usage)命令进行目录级排查,直接运行du sh /*可以列出根目录下一级子目录的大小,其中s表示汇总摘要,h表示易读格式,通过层层递进,例如du sh /var/*,可以像剥洋葱一样迅速锁定占用空间最大的具体目录,为了提高效率,可以结合sort命令,如du sh /var/* | sort hr,直接将占用最大的目录排在最前面,实现毫秒级定位。

深度排查:识别隐藏的占用源

在常规排查中,经常会遇到“空间消失了但找不到大文件”的诡异现象,这通常涉及两个专业层面的原因:已删除文件仍被进程占用以及挂载点遮蔽。

当使用rm命令删除大文件(如日志文件)后,如果该文件仍被某个进程(如Nginx或Tomcat)占用,磁盘空间并不会立即释放,直到该进程释放文件句柄,使用lsof | grep deleted命令可以列出所有已删除但仍被打开的文件,通过查看lsof输出中的SIZE列,可以找回这部分“消失”的空间,解决方案通常是重启对应服务或使用kill 9强制终止进程,或者对于日志文件,使用> /path/to/logfile而非删除文件。

另一种情况是挂载点遮蔽,原本/data目录下有大量数据,但管理员新挂载了一个新磁盘到/data,那么旧的数据将被遮蔽,df看到的是新磁盘的剩余空间,而旧数据占用的空间在常规命令下“不可见”,使用mount命令检查当前的挂载情况,或者临时取消挂载查看原目录内容,是解决此类问题的关键。

CentOS查看硬盘剩余空间,查看磁盘命令是什么?-图2

专业的空间清理与扩容方案

定位问题后,需要采取针对性的清理或扩容措施,对于清理,必须遵循“最小化风险”原则。

清理系统日志和软件包缓存是最安全的操作,使用journalctl vacuumtime=7d可以限制systemd日志仅保留最近7天的数据,效果立竿见影,对于使用Yum的系统,yum clean all可以清空软件包缓存,对于Docker环境,未使用的镜像和容器是空间大户,docker system prune a命令可以一键清理所有悬空资源。

针对业务产生的过期数据,建议编写Shell脚本结合find命令进行自动化归档或删除。find /backup/ name "*.tar.gz" mtime +30 exec rm f {} \;可以精准删除30天前的备份文件。

当清理无法满足需求时,LVM(逻辑卷管理)扩容是CentOS下最专业的解决方案,前提是磁盘组(VG)还有剩余空间,扩容步骤严谨且需谨慎:首先使用lvextend L +10G /dev/mapper/centosroot将逻辑卷扩大10G,随后根据文件系统类型执行resize命令,对于XFS文件系统(CentOS 7/8默认),使用xfs_growfs /;对于EXT4,使用resize2fs /dev/mapper/centosroot,这种在线扩容方式无需重启服务器,是生产环境的首选。

自动化监控与预防机制

为了彻底摆脱被动救火的局面,建立自动化监控机制是必要的,虽然可以通过Cacti、Zabbix等监控系统实现,但轻量级的Shell脚本监控往往更灵活。

编写一个简单的脚本,定期检测df获取的使用率,一旦超过阈值(如80%),即通过邮件或钉钉机器人发送告警,建议在/etc/logrotate.d/下为所有关键业务应用配置日志轮转策略,确保日志文件按大小或时间自动压缩、切割和删除,从源头上控制日志膨胀。

CentOS查看硬盘剩余空间,查看磁盘命令是什么?-图3

相关问答

Q1:在CentOS中,为什么删除了大文件后,使用df命令查看磁盘剩余空间没有增加?

A: 这是因为该大文件虽然被删除了(即解除了文件系统目录层面的链接),但仍有运行的进程持有该文件的文件句柄,在这种情况下,内核认为该文件仍在被使用,因此不会释放其占用的磁盘空间,解决方法是使用lsof | grep deleted命令找到这些被删除但仍被占用的文件,然后重启对应的进程,或者直接重启系统(如果业务允许),即可释放空间。

Q2:如何在不重启服务器的情况下,对CentOS的根分区(/)进行在线扩容?

A: 如果您的系统使用了LVM(逻辑卷管理),且所在的卷组(VG)还有未分配的空间,可以在线扩容,使用lvextend L +大小 /dev/你的根卷路径命令增加逻辑卷大小;根据文件系统类型执行刷新命令,如果是CentOS 7/8常用的XFS系统,执行xfs_growfs /;如果是EXT4系统,执行resize2fs /dev/你的根卷路径,整个过程无需重启,业务即可无缝使用新增的空间。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/92641.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~