Linux磁盘空间如何排查_标准流程剖析适用于全部场景【指导】

发布时间 - 2025-12-13 00:00:00    点击率:
Linux磁盘空间排查四步法:先用df -h定位高危分区,再用du -sh *逐层下钻找大目录,接着用lsof +L1检查已删仍被占用文件,最后用find专项扫描隐藏、大、稀疏及多硬链接文件。

排查Linux磁盘空间问题,核心是“定位谁占了空间、为什么占、怎么清理”,不靠猜,靠逐层缩小范围。以下流程适用于物理机、虚拟机、容器宿主机、云服务器等全部场景,已验证多年稳定有效。

第一步:确认哪个分区爆满

df -h 看整体使用率,重点关注 Use% 列超过85%的挂载点(如 /、/home、/var)。注意看 Mounted on 列——别只盯着 /dev/sda1,要结合挂载路径判断实际影响范围。若看到 100% 但系统还能操作,可能是已删除文件仍被进程占用(见第三步)。

第二步:进入高危分区,找大目录

切换到对应挂载点(如 cd /),运行:
du -sh * 2>/dev/null | sort -hr | head -20
说明:
du -sh * 统计当前层各目录大小(-s 合并子项,-h 可读)
2>/dev/null 屏蔽权限不足报错(避免干扰排序)
sort -hr 按人类可读格式逆序排(G > M > K)
head -20 只看前20个最大项
常见高危目录:/var/log、/var/lib/docker、/home、/tmp、/usr/local。找到最大目录后,cd 进去重复执行该命令,逐层下钻。

第三步:检查被删除但仍被占用的空间(隐藏空间)

执行:
lsof +L1lsof | grep deleted
若输出非空,说明有进程正打开已被 rm 删除的文件,其空间不会释放。典型场景:
• 日志轮转未重启服务(如 nginx、java 应用)
• 长期运行的守护进程持续写入已删日志文件
解决方法:
• 重启对应服务(最稳妥)
• 或用 kill -USR1 [pid] 触发日志重开(需程序支持,如 nginx)
• 极端情况可 kill 进程释放(评估业务影响)

第四步:查清“看不见”的大文件(隐藏、稀疏、硬链接)

有些文件 du 算不到,但真实占磁盘,需专项扫描:
• 查隐藏文件:du -sh .[a-zA-Z0-9]* 2>/dev/null | sort -hr | head -10
• 查大于100MB的普通文件:find /path -xdev -type f -size +100M -ls 2>/dev/null | sort -k7nr | head -10(-xdev 防跨分区)
• 查稀疏文件(如qcow2、docker overlay):find /path -xdev -type f -printf '%s %p\n' | sort -nr | head -5(用 %s 显示实际磁盘占用,非逻辑大小)
• 检查硬链接混乱:find /path -xdev -links +100 -ls 2>/dev/null | head -5(过多硬链接可能掩盖真实归属)

基本上就这些。四步下来,99% 的磁盘满问题都能准确定位。不复杂但容易忽略细节——比如没加 -xdev 跨了 NFS 导致卡死,或忘了 2>/dev/null 让错误刷屏盖过关键结果。动手前先 df,收尾后记得 df 再确认。


# linux  # java  # docker  # nginx  # 云服务  # 虚拟机  # 解决方法  # 云服务器  # 为什么 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ,网页ppt怎么弄成自己的ppt?  Laravel如何自定义错误页面(404, 500)?(代码示例)  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  如何基于云服务器快速搭建个人网站?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  高端建站三要素:定制模板、企业官网与响应式设计优化  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  详解Oracle修改字段类型方法总结  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  Laravel如何使用Eloquent进行子查询  Laravel如何实现API速率限制?(Rate Limiting教程)  北京网站制作的公司有哪些,北京白云观官方网站?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Python进程池调度策略_任务分发说明【指导】  昵图网官网入口 昵图网素材平台官方入口  Laravel观察者模式如何使用_Laravel Model Observer配置  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  如何在宝塔面板中创建新站点?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  如何挑选最适合建站的高性能VPS主机?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  详解jQuery中基本的动画方法  如何在搬瓦工VPS快速搭建网站?  Python文本处理实践_日志清洗解析【指导】  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  详解jQuery停止动画——stop()方法的使用  JavaScript如何实现路由_前端路由原理是什么  详解MySQL数据库的安装与密码配置  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  JavaScript如何实现错误处理_try...catch如何捕获异常?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  如何快速启动建站代理加盟业务?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel怎么判断请求类型_Laravel Request isMethod用法  Android自定义控件实现温度旋转按钮效果  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  企业网站制作这些问题要关注