当服务器磁盘使用率飙升至98%,业务面临崩溃风险时,运维人员常会遭遇半夜手机疯狂震动的紧急场景。手动逐个文件夹排查日志、Docker、缓存或用户文件的“吸血”源头,效率极低,往往等查完已经造成重大损失。

从实战经验来看,最高效的磁盘空间排查方法不是盲目摸索,而是直击问题核心。下面这套组合方案,能在3秒内定位磁盘使用率的元凶,10分钟内释放几十GB空间,非常适合运维人员收藏备用。
一行命令,秒出磁盘空间“占用排行榜”
直接复制下面这条Linux命令执行:
du -sh /* 2>/dev/null | sort -rh | head -10
执行效果示例:
23G /var
9.8G /home
4.2G /usr
2.1G /opt
1.5G /tmp
...
最大的磁盘空间“吸血鬼”瞬间现身,再也不用手动猜测。
这条命令的原理其实很简单:
du -sh /* 统计根目录下第一层目录的大小(-h 参数使其显示为人类可读格式);2>/dev/null 屏蔽权限不足的报错信息,让输出更干净;sort -rh 按大小从大到小排序;head -10 只显示前10名“大文件占用者”。
找到大户后,快速“剥洋葱”式深入排查:
cd /var && du -sh * 2>/dev/null | sort -rh | head -10
下面几个实用的变种命令也值得记下:
- 当前目录最常用版:
du -sh * 2>/dev/null | sort -rh | head -10 - 包含隐藏文件夹:
du -sh .* * 2>/dev/null | sort -rh | head -15 - 精确MB排序:
du -sm * 2>/dev/null | sort -rn | head -10
CentOS / Ubuntu 安全清理脚本(直接复制可用)
(1) 最有效的日志清理(推荐优先执行)
清空所有 .log 文件,保留文件结构,不影响程序运行。
find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
(2) Ubuntu / Debian 专用一键清理
sudo apt-get clean && sudo apt-get autoclean
sudo apt-get autoremove -y
sudo journalctl --vacuum-time=14d # 保留14天日志
(3) CentOS / RHEL / Rocky / AlmaLinux 专用一键清理
sudo yum clean all
sudo rm -rf /var/cache/yum/* 2>/dev/null
sudo journalctl --vacuum-time=14d
(4) Docker 大户清理(常占用几十GB磁盘空间)
docker system prune -af --volumes
(5) 临时文件快速清理
sudo rm -rf /tmp/* /var/tmp/* 2>/dev/null
效率再提升:安装 ncdu 磁盘分析神器
# Ubuntu/Debian
sudo apt install ncdu -y
# CentOS/RHEL/Alma
sudo dnf install ncdu -y # 或 yum install ncdu
执行 ncdu / 后,用键盘即可浏览、删除文件,体验极佳。相比手动逐个目录排查,效率提升显著。
最后想说:真正的运维高手,不是让磁盘永远不爆满,而是能在30秒内精准知道它为什么爆满。掌握这套流程,绝大多数服务器磁盘空间告警场景都能快速解决。
