根目录空间不足时需先定位再清理:一、用df -h /和df -i /确认磁盘块与inode使用率;二、用du逐级排查大目录;三、重点清理Docker日志、系统日志、包缓存及被删除仍占用空间的文件;四、可用ncdu交互式分析。

根目录空间不足时,系统会报“No Space Left on Device”,服务可能异常甚至无法登录。关键不是立刻删文件,而是先定位“谁占的”,再安全清理。
一、确认是不是真满了
运行两条命令,缺一不可:
- df -h /:看磁盘块使用率,若 Use% 达 95% 以上,说明空间快耗尽
- df -i /:看 inode 使用率,若 IUse% 是 100%,即使还有空间也无法新建文件(常见于大量小日志或临时文件)
二、找出占用最大的目录
从根往下逐层排查,避免盲目操作:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 查一级目录:sudo du -sh /* 2>/dev/null | sort -rh,重点关注 /var、/usr、/home、/tmp
- 若 /var 占用大,继续查:sudo du -sh /var/* 2>/dev/null | sort -rh
- 若 /var/log 大,再看具体日志:sudo du -sh /var/log/* 2>/dev/null | sort -rh | head -10
三、重点清理几类高危空间源
这些地方最常“偷偷吃光”空间:
- Docker 数据:运行 docker system df 查总用量;find /var/lib/docker/containers -name "*.log" -size +100M 找大日志;可执行 docker system prune -a --volumes(慎用,会删未运行容器和镜像)
- 系统日志:清空旧日志内容(不删文件):sudo truncate -s 0 /var/log/syslog /var/log/messages;或删归档:sudo rm -f /var/log/*.gz /var/log/*.1
- 包管理缓存:Ubuntu/Debian 用 sudo apt clean && sudo apt autoremove --purge;CentOS/RHEL 用 sudo dnf clean all 或 sudo yum clean all
- 被删除但仍在占用空间的文件:运行 lsof +L1 2>/dev/null,找到标记为 (deleted) 的大文件,然后重启对应服务,如 sudo systemctl restart rsyslog
四、辅助工具快速分析
装一个 ncdu,交互式查看更直观:
- 安装:sudo apt install ncdu(Ubuntu)或 sudo dnf install ncdu(Fedora/RHEL)
- 扫描:ncdu / 或 ncdu /var,用方向键进入目录,d 删除选中项,q 退出

















