image.png# 🧹 Linux 磁盘占用排查指南(ncdu)

适用于 CentOS / OpenCloudOS / 常见 Linux 服务器\
目标:快速找出占用磁盘空间最大的目录和文件并清理

1️⃣ 安装 ncdu

yum install -y ncdu   # CentOS / OpenCloudOS
# Ubuntu/Debian:
# apt install -y ncdu

2️⃣ 快速查看磁盘使用情况

查看磁盘分区使用率

df -h

确认是根分区 / 爆满还是其他挂载点。

使用 ncdu 查看整个系统

ncdu --exclude /proc --exclude /sys --exclude /run /
  • ↑ ↓ 上下移动\
  • Enter 进入目录\
  • q 退出\
  • d 删除当前选中项

3️⃣ 逐步定位问题目录

  1. ncdu 主界面找到占用最大的目录,例如 /var
  2. Enter 进入继续分析
  3. 直到找到具体占用空间最大的子目录或文件,例如:

    • /var/lib/docker/overlay2
    • /var/log
    • /var/cache

4️⃣ 常见大户及清理方法

🐳 Docker 占用过多

查看 Docker 占用:

docker system df

清理未使用的容器、镜像、缓存:

docker system prune -af
docker volume prune -f
⚠️
不会影响正在运行的容器,但会删除所有停止容器、悬挂镜像、无用网络和缓存。

📝 日志占用过多

# 清空主要日志文件
> /var/log/messages
> /var/log/secure
> /var/log/wtmp

🗑 缓存占用过多

yum clean all
rm -rf /var/cache/*

5️⃣ 高效排查大文件

找出某目录下最大的 20 个文件:

find /var -type f -exec du -h {} + 2>/dev/null | sort -hr | head -n 20

6️⃣ 推荐排查步骤(自上而下)

  1. df -h 找到磁盘满的分区\
  2. ncdu / 定位占用最大的目录\
  3. 进入目录逐层分析\
  4. 清理不必要的日志、缓存、镜像\
  5. 再次 ncdu 验证释放空间情况

7️⃣ 最佳实践

  • 定期执行:
docker system prune -af
docker volume prune -f
yum clean all
  • 配合 ncdu 每月巡检,避免磁盘突然被写满导致服务宕机
  • 重要业务文件删除前做好备份

最后修改:2025 年 09 月 18 日
如果觉得我的文章对你有用,请随意赞赏