Linux磁盘空间如何排查_完整流程拆解让问题迎刃而解【技巧】
发布时间 - 2025-12-14 00:00:00 点击率:次登录服务器后先用 df -h 查看各挂载点使用率,重点关注 Use% 超 98% 的分区(如 / 或 /var),再用 df -i 检查 inode 是否耗尽;接着用 du 和 find 分层定位大目录和大文件,注意隐藏文件;若删除后空间未释放,用 lsof +L1 查找被进程占用的已删文件;清理优先 truncate、压缩或 logrotate,避免直接 rm;长期需配置日志轮转和定期清理脚本。
先看哪块盘满了
登录服务器后第一件事不是乱翻文件,而是用 df -h 快速确认哪个挂载点使用率超标。重点关注 Use% 列,比如显示 98% 或 100% 的分区(常见是 / 或 /var)。如果看到 tmpfs 或 devtmpfs 占用高不用管——它们是内存虚拟文件系统,不占真实磁盘。
顺手加个 df -i,检查 inode 是否耗尽。有些场景磁盘空间还有余量,但因生成了海量小文件(如日志碎片、缓存临时文件),导致 IUse% 达到 100%,这时 touch 新文件或写日志会失败,但 df -h 看不出异常。
定位“真凶”目录和文件
找到问题分区后,进入该挂载点(比如 cd /),用以下命令分层缩小范围:
-
查一级子目录总大小:
du -sh—— 快速看出谁最吃空间,比如
* 2>/dev/null | sort -hr | head -20/var占 35G,/home占 2G -
进大目录继续深挖:
cd /var && du -sh * 2>/dev/null | sort -hr | head -10—— 很可能发现/var/log或/var/lib/docker是元凶 -
找具体大文件:
find /var/log -type f -size +100M -exec ls -lh {} \;—— 直接列出所有超 100MB 的日志文件 -
别漏隐藏文件:
du -ah --max-depth=1 . | sort -rh | head -15——-a包含点开头的隐藏项,有时.cache或.local/share暗藏巨无霸
注意“删了也白删”的陷阱
执行 rm 后 df -h 空间没释放?大概率是文件已被删除,但仍有进程在读写它,系统无法真正回收空间。
用这两个命令验证:
-
lsof +L1—— 列出所有已删除但仍被打开的文件(带DEL标记) -
lsof | grep deleted—— 更直观,附带 PID 和进程名
例如输出里有 java 1234 root 12w REG 8,1 2.1G ... /var/log/app.log (deleted),说明 Java 进程还在往这个已删文件写日志。解决办法是:重启对应服务(推荐),或 kill -HUP 1234(若支持重载日志句柄),不建议直接 kill -9 除非确认无影响。
安全清理与长期预防
确认目标后,清理要讲策略:
- 日志类:优先用
truncate -s 0 /path/to/big.log清空内容(保留文件句柄,不中断服务),或gzip压缩后删原文件 - 临时目录:
find /tmp -mtime +7 -delete、find /var/tmp -mtime +7 -delete - 包管理缓存:
apt-get clean(Debian/Ubuntu)或yum clean all(RHEL/CentOS) - 旧内核:
dpkg --list | grep '^ii linux-image-' | awk '{print $2}' | sort -V | sed -n '/'$(uname -r)'!p' | xargs apt-get -y purge(Ubuntu)
长期预防靠两件事:一是配好 logrotate(比如 /etc/logrotate.d/nginx),二是定期跑轻量清理脚本(每天清 7 天前日志 + 压缩超 500MB 的活跃日志)。不需要全自动删一切,留 10%~15% 缓冲空间更稳妥。
基本上就这些。流程不复杂,但容易忽略 inode、deleted 文件、隐藏路径这三处关键盲点。
# linux
# java
# centos
# node
# docker
# nginx
# app
# ubuntu
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
linux写shell需要注意的问题(必看)
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
如何快速搭建高效服务器建站系统?
详解jQuery中的事件
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
iOS验证手机号的正则表达式
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
详解MySQL数据库的安装与密码配置
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
如何用AI帮你把自己的生活经历写成一个有趣的故事?
千库网官网入口推荐 千库网设计创意平台入口
如何实现建站之星域名转发设置?
青岛网站建设如何选择本地服务器?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
如何快速搭建高效可靠的建站解决方案?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
历史网站制作软件,华为如何找回被删除的网站?
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
lovemo网页版地址 lovemo官网手机登录
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
利用python获取某年中每个月的第一天和最后一天
公司门户网站制作流程,华为官网怎么做?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Java垃圾回收器的方法和原理总结
音响网站制作视频教程,隆霸音响官方网站?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
详解Android图表 MPAndroidChart折线图
如何快速上传自定义模板至建站之星?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何快速建站并高效导出源代码?
BootStrap整体框架之基础布局组件
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
如何用景安虚拟主机手机版绑定域名建站?
Laravel怎么使用Intervention Image库处理图片上传和缩放
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】


* 2>/dev/null | sort -hr | head -20