Linux磁盘空间排查实战:从df到du的完整诊断链路

问题场景

生产环境磁盘使用率突破阈值,需要快速定位空间占用源并制定清理策略。

诊断链路

1. 全局视图:df定位分区

bash 复制代码
df -h  # 人类可读格式
df -i  # 检查inode耗尽情况

2. 目录级排查:du统计占用

bash 复制代码
# 一级目录占用排序
du -sh /* 2>/dev/null | sort -hr | head -10

# 深度遍历(谨慎使用)
du -h --max-depth=2 /var | sort -hr | head -20

3. 文件级定位:find精准打击

bash 复制代码
# 查找大文件(>100MB)
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

# 查找最近7天修改的大文件
find /var/log -type f -mtime -7 -size +50M

常见陷阱

陷阱1:已删除文件未释放空间

bash 复制代码
lsof | grep deleted
# 需要重启占用进程或kill -HUP

陷阱2:隐藏的Docker占用

bash 复制代码
docker system df  # 查看Docker空间占用
docker system prune -a --volumes  # 清理悬空资源

陷阱3:inode耗尽但空间充足

bash 复制代码
df -i  # 检查inode使用率
find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

预防措施

  • 配置logrotate自动轮转日志
  • 设置磁盘使用率告警(建议80%阈值)
  • 定期清理临时文件和旧备份
  • 监控Docker镜像和容器数量
相关推荐
考虑考虑4 小时前
JDK26中的Map.ofLazy
java·后端·java ee
剪刀石头布啊4 小时前
vue-react为何要虚拟dom
前端
剪刀石头布啊4 小时前
ahooks常用的一些库,我们使用一下
前端
剪刀石头布啊4 小时前
从git更新本地提交记录到更新已经推送到远端记录
前端
云浪5 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
苏三的开发日记5 小时前
Docker 启动顺序优化(CentOS / Ubuntu)
后端
Flynt6 小时前
axios 被投毒半年后,我把 npm 的"安全防线"实测了一遍:最信任的 SHA512 是安慰剂
前端·npm·node.js
excel7 小时前
Base62 和 Base64 有什么区别?
前端
高频因子挖掘机7 小时前
同一交易日出现重复 K 线:去重前先确认时间、来源和粒度
后端·github·api
feely02088 小时前
《我写了 31 个静态扫描插件,踩了 7 个「假绿」》
后端