根目录爆满需按四步排查:先用df -h确认真实占用及挂载点;再用du -sh /*定位一级大户;接着用find和lsof查找大文件及已删未释文件;最后分类清理日志、缓存、Docker等,避免误删。

根目录爆满不是突发故障,而是空间被悄悄吃掉的结果。关键不在“删什么”,而在“怎么快准狠定位”。下面按实战顺序说清楚每一步该做什么、为什么这么做、容易踩什么坑。
别急着进目录翻找,先看全局:
df -h —— 这是唯一可靠的起点。
重点看 Use% 和 Mounted on 列。如果 /dev/vda1 或类似设备挂载在 / 且 Use% ≥95%,就说明根分区确实告急。
注意:有些系统 /boot、/var/log、/tmp 是独立挂载点,df -h 会单独列出,别只盯着 / 忽略其他小分区也被撑爆的可能。
从根开始,用 du 锁定最大嫌疑区域:
- 查一级子目录大小(最常用):
du -sh /* 2>/dev/null | sort -hr
这行命令能快速排出 /var、/home、/usr 等谁占得最多。2>/dev/null 是为了跳过权限拒绝的目录(比如 /proc、/sys),避免干扰排序。
- 如果发现 /var 占了 60G,那就继续钻进去:
du -sh /var/* 2>/dev/null | sort -hr
常见“重灾区”有:
• /var/log(日志没轮转)
• /var/lib(Docker 镜像、数据库数据)
• /var/cache(包管理器缓存堆积)
• /root 或 /home 下的大型软件包(如 Anaconda、离线镜像)
目录大 ≠ 一定有显眼的大文件。有些文件已被删除但进程还在写,空间没释放:
- 找真正存在的大文件(≥1G):
find / -type f -size +1G 2>/dev/null | xargs ls -lh
比 du 更快,尤其适合已知大概范围(比如只查 /var/log):
find /var/log -type f -size +500M -ls
- 查“已删未释”的幽灵文件:
lsof +L1 或 lsof | grep deleted
输出里会显示哪个进程(PID)还占着已删除文件的句柄。常见于长期运行的日志服务(如 nginx、java 应用),重启对应服务即可立即释放空间。
找到目标后,别直接 rm -rf:
• 日志类(/var/log/*.log):
– 先 ls -lhS 看最大几个,确认是否可删;
– 优先用 logrotate 配置自动轮转,或手动压缩:gzip app.log;
– 清理旧归档:find /var/log -name "*.log.*" -mtime +30 -delete
• 缓存类(/var/cache/apt、/root/.cache):
– apt clean(Debian/Ubuntu)
– yum clean all(CentOS/RHEL)
– rm -rf /root/.cache/pip /root/.cache/conda(若确定不用)
• Docker 类:
– docker system prune -a(慎用,会删所有未用镜像和容器)
– 或只清构建缓存:docker builder prune
以上就是Linux系统盘爆满怎么办_根目录空间排查流程【技巧】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号