Linux磁盘空间排查需按定位、分析、清理、预防四步进行:先用df -h查高占用分区,再用du和find找大文件,结合lsof +L1查已删未释放文件;清理时区分日志、缓存、临时文件并规避风险;最后通过定时监控、ncdu工具和空间预留实现长效管理。

Linux磁盘空间不足是导致服务异常、日志写入失败、甚至系统卡死的常见原因。排查关键不在于“看哪里满”,而在于“谁在持续占用、是否可清理、有无异常增长”。下面从定位、分析、清理、预防四个层面讲透。
一、快速定位哪个分区快满了
用 df -h 查看各挂载点使用率,重点关注 Use% 超过 85% 的分区。注意别只盯 / 根分区——/var、/home、/tmp、/var/log 等子目录常独立挂载,容易被忽略。
若 df 显示某分区 100% 却仍能写入,可能是被已删除但未释放句柄的大文件占着空间(常见于滚动日志或长时间运行的服务)。此时需结合 lsof 检查:
- lsof +L1 —— 列出所有已被删除但仍被进程打开的文件(deleted 状态)
- lsof +L1 | grep deleted | head -20 —— 快速筛选前20条
- 找到对应 PID 后,可重启相关服务或通知开发人员处理
二、精准找出大目录和大文件
df 告诉你“哪块地满了”,du 才告诉你“谁在上面盖了违章建筑”。进入高占用分区后,用以下命令逐层下钻:
- du -sh /* 2>/dev/null | sort -hr | head -10 —— 查根下前10大目录(屏蔽权限错误)
- du -sh /var/* 2>/dev/null | sort -hr | head -10 —— 进入 /var 后再筛
- find /var/log -name "*.log*" -size +100M -ls 2>/dev/null —— 找大于100MB的日志文件
特别注意:/var/log/journal(systemd-journald 日志)、/var/cache/apt/archives(Debian/Ubuntu 包缓存)、/root/.cache、容器镜像存储路径(如 /var/lib/docker)都是高频“空间黑洞”。
标签: mysql linux docker ubuntu 工具 钉钉
还木有评论哦,快来抢沙发吧~