Linux磁盘爆满排查教程_inode与空间问题解决
发布时间 - 2026-01-07 00:00:00 点击率:次答案是inode耗尽或小文件堆积导致,需先用df -h和df -i区分空间满还是inode满,再用find或ncdu定位高占用目录,最后针对性清理并配置预防措施。
Linux磁盘显示“空间不足”,但df -h和du -sh *结果对不上?大概率是inode耗尽,或小文件堆积导致空间无法释放。别急着删日志,先分清是“没空间”还是“没inode”——这是排查的起点。
第一步:确认到底是空间满,还是inode满
运行两个命令对比:
-
df -h:看各挂载点的磁盘使用率(Size/Used/Avail) -
df -i:看各挂载点的inode使用率(IUsed/IFree/IUse%)
常见异常组合:
-
df -h显示使用率95%,但df -i显示IUse%接近100% → inode耗尽,典型于海量小文件(如缓存、邮件临时文件、未清理的/tmp) -
df -h显示已满,但du -sh /path总和远小于Used → 可能有已删除但进程仍占用的大文件(lsof可查)
第二步:快速定位高inode占用目录
进入疑似挂载点(如/var),执行:
find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -nr | head -10
这条命令统计每个二级子目录下的文件数量(按降序排前10)。例如输出:
482312 ./log
120944 ./spool
87652 ./cache
说明/var/log下有近50万文件,极可能是日志轮转失效或应用未清理所致。
更直观方式(需安装ncdu):
ncdu -x /var
交互式查看各目录文件数与磁盘占用,支持按文件数排序(按Ctrl+d切换排序方式)。
第三步:释放inode或空间的具体操作
若inode满:
- 清空无用小文件:
find /var/log -name "*.log.*" -mtime +30 -delete(删30天前的压缩日志) - 检查mail spool:
ls -l /var/spool/mail/,大量零字节或超龄邮件文件可批量清理 - 临时禁用日志生成:如
systemctl stop rsyslog(仅调试用,勿长期停)
若空间满但du不匹配:
- 查被删除但仍被进程占用的文件:
lsof +L1或lsof | grep deleted - 常见场景:nginx/apache日志被logrotate重命名后,主进程仍在往旧文件句柄写;重启对应服务即可释放空间
- 强制释放(不推荐):
echo > /proc/PID/fd/FD_NUMBER(仅限明确可丢弃的日志)
第四步:预防再次发生
治标更要治本:
- 为
/tmp和/var/log配置tmpfiles.d自动清理规则(如/etc/tmpfiles.d/local.conf中加D /var/log/myapp 0755 root root 30d) - 监控inode使用率:Zabbix/Prometheus添加
node_filesystem_files_free指标告警 - 限制用户创建过多文件:
ulimit -n或在/etc/security/limits.conf中设置hard nofile
# linux
# node
# apache
# nginx
# app
# 字节
# ai
# echo
# sort
# mail
# 堆
# var
# delete
# prometheus
# zabbix
# 这是
# 句柄
# 不上
# 这条
# 能有
# 再用
# 仅限
# 重启
# 更要
# 急着
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel中的Facade(门面)到底是什么原理
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
微信小程序 HTTPS报错整理常见问题及解决方案
WEB开发之注册页面验证码倒计时代码的实现
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel中的withCount方法怎么高效统计关联模型数量
Swift中switch语句区间和元组模式匹配
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
在线教育网站制作平台,山西立德教育官网?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
javascript基本数据类型及类型检测常用方法小结
如何做网站制作流程,*游戏网站怎么搭建?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
如何选择PHP开源工具快速搭建网站?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何为不同团队 ID 动态生成多个独立按钮
如何在自有机房高效搭建专业网站?
如何利用DOS批处理实现定时关机操作详解
Laravel怎么为数据库表字段添加索引以优化查询
Python高阶函数应用_函数作为参数说明【指导】
,在苏州找工作,上哪个网站比较好?
JavaScript中的标签模板是什么_它如何扩展字符串功能
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
微信公众帐号开发教程之图文消息全攻略
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
再谈Python中的字符串与字符编码(推荐)
详解Huffman编码算法之Java实现
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何创建自定义中间件?(Middleware代码示例)
java获取注册ip实例
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Laravel如何使用Service Container和依赖注入?(代码示例)
装修招标网站设计制作流程,装修招标流程?
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel怎么在Controller之外的地方验证数据
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel如何实现模型的全局作用域?(Global Scope示例)
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
🚀拖拽式CMS建站能否实现高效与个性化并存?
Swift开发中switch语句值绑定模式
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
下一篇:怎样安装centos7?
下一篇:怎样安装centos7?


ncdu定位高占用目录,最后针对性清理并配置预防措施。