在CentOS系统中,管理磁盘空间是服务器运维的基础操作,无论是排查存储不足的问题,还是规划资源扩容,掌握查看空间大小的技巧都至关重要,本文将从基础命令到进阶方法,详细介绍CentOS下如何高效分析磁盘和目录的占用情况,并提供实用维护建议。
**一、基础命令:快速定位存储瓶颈
查看整体磁盘使用情况
使用df
命令可快速获取磁盘分区的总容量、已用空间及剩余空间。

推荐命令:
- df -h
-h
参数以人类可读的单位(如GB、MB)显示结果。
输出示例:
- Filesystem Size Used Avail Use% Mounted on
- /dev/vda1 50G 32G 16G 67% /
关键字段解读:
Use%
:超过80%需警惕,可能存在日志堆积或未清理的临时文件。
Mounted on
:确认分区挂载点,优先检查常用目录如/var
或/home
。

分析具体目录的存储占用
若需定位某个目录的详细空间占用,du
命令是更精准的工具。
常用指令:
- du -sh /path/to/directory
-s
显示目录总大小,而非子目录明细。
-h
自动转换单位为GB/MB。
检查/var/log
的占用:
- du -sh /var/log
**二、进阶技巧:深度排查与优化
按文件大小排序定位大文件
通过组合命令快速找到占用最高的文件或目录:

- du -h /path | sort -rh | head -n 20
sort -rh
按数值从大到小排序。
head -n 20
显示前20个结果。
此方法适用于排查如MySQL日志、缓存文件等突然增长的场景。
使用图形化工具提升效率
若习惯可视化操作,可安装ncdu
工具:
- yum install ncdu -y
- ncdu /path/to/scan
该工具以交互式界面展示目录占用比例,支持键盘导航删除文件。
LVM分区的扩展与监控
对于使用LVM的服务器,需额外关注逻辑卷状态:
- vgs # 查看卷组空间
- lvs # 显示逻辑卷分配情况
若卷组有剩余空间,可直接扩展逻辑卷:
- lvextend -L +10G /dev/vg_name/lv_name
- resize2fs /dev/vg_name/lv_name # 扩展文件系统
**三、自动化监控与告警方案
设置定时任务定期检查
通过Cron定时执行存储检查脚本,例如每日生成报告:
- 编辑Cron任务
- crontab -e
- 添加以下内容(每天8点运行)
- 0 8 * * * df -h > /var/log/disk_usage.log
配置阈值告警
编写Shell脚本,当磁盘使用率超过阈值时触发邮件通知:
- #!/bin/bash
- THRESHOLD=80
- CURRENT_USE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
- if [ $CURRENT_USE -gt $THRESHOLD ]; then
- echo "警告:根分区使用率已达 ${CURRENT_USE}%" | mail -s "磁盘告警" admin@example.com
- fi
**四、常见问题与解决方案
显示空间已满但找不到大文件
可能原因:
- 文件被删除但仍被进程占用(如日志文件)。
排查方法:
- lsof | grep deleted
重启相关进程或清空文件句柄释放空间。
虚拟内存占用误判
df
显示的Used
包含为未释放的缓存,若实际可用空间与统计值差异较大,尝试释放缓存:
- sync; echo 3 > /proc/sys/vm/drop_caches
**维护建议
定期清理无用文件是保持服务器健康的关键,重点检查以下目录:
/var/log:使用logrotate
配置日志轮转。
/tmp 和/var/tmp:设置定时清理任务。
- 软件包缓存:运行yum clean all
删除旧版本缓存。
对于生产环境,建议每周至少执行一次全面存储分析,并结合监控工具(如Prometheus+Alertmanager)实现实时预警,存储管理不仅是技术问题,更是资源规划意识的体现——未雨绸缪远比紧急扩容更稳妥。