适用环境:Ubuntu 22.04 LTS。执行清理操作前,请先确认路径和数据归属;不要因空间不足而直接删除不认识的系统目录。
df 看的是文件系统剩余空间,du 看的是目录内容占用。两者结合,能快速判断是哪个分区满了、又是哪个目录导致的。
第一步:确认哪个分区满了
| |
关注挂载点为 /、/home、/boot 的行。Use% 接近 100% 时,先不要升级系统或安装大型软件包;这可能让包管理操作中断。
第二步:从大目录逐层缩小
| |
-x 让 du 不跨越到其他挂载点,避免把 Windows NTFS 分区、移动硬盘等内容混在统计里。通常先检查 /var、/home、/usr;在 /var 下,日志、软件包缓存和容器数据经常占用较多空间。
继续深入某个目录时,替换路径即可:
| |
第三步:定位异常大文件
| |
看到大文件后,先判断它是否为日志、下载缓存、虚拟机磁盘或数据库文件。对日志可使用 journalctl --disk-usage 查看 systemd 日志占用;不要直接删除正在写入的日志文件。
一个容易忽略的差异
若 df 显示空间已满而 du 找不到对应内容,可能是进程仍打开着一个“已删除文件”。可用下面命令排查:
| |
确认对应服务后,以正常方式重启服务或系统,才会释放这部分空间。
出处
- 原始参考:Linux 查看磁盘空间命令(df、du)(jadeandplum,CSDN)
- 手册参考:GNU Coreutils: df invocation
本文将原始命令按“整体—目录—文件—异常占用”的排查顺序重新组织。