新手排查清理大文件需三步:先用df -h | sort -k5,5hr定位高占用分区(如/、/var);再用du逐级查找大目录,如du -sh /var/* | sort -rh | head -10;最后按类型安全处理——日志用truncate清空、旧日志gzip压缩、临时文件确认后清理、docker先查再删。

新手排查和清理 Linux 中的大文件异常增长,关键不是一上来就删,而是先看清“谁在偷偷吃空间”。整个过程可以拆成三步:快速定位问题分区、逐层缩小范围找到具体文件、按类型安全处理。不复杂,但容易忽略细节。
第一步:一眼看出哪个分区快满了
用 df -h 查整体磁盘使用,重点关注 Use% 列。如果根分区(/)或 /var、/home 超过 85%,就得立刻跟进。
加个排序更省事:
df -h | sort -k5,5hr —— 按使用率倒序排,排第一的就是最紧急的。
特别留意这些挂载点:
• /var/lib/docker/overlay2:Docker 镜像、容器日志撑爆的典型位置
• /var/log:没轮转的日志可能单个就几个 GB
• /tmp 或 /var/tmp:临时文件长期滞留
第二步:一层一层往下找“真凶”
从问题分区根目录开始,用 du 剥洋葱:
- du -sh /* 2>/dev/null | sort -rh | head -10 —— 看根下前 10 大一级目录
- 假如 /var 异常大,再进它:du -sh /var/* 2>/dev/null | sort -rh | head -10
- 继续深入,比如发现 /var/log 占多,就查里面:du -sh /var/log/* 2>/dev/null | sort -rh | head -10
想跳过目录直接抓“巨无霸”,用 find:
find /var/log -type f -size +100M -ls —— 查日志目录里超 100MB 的文件
find / -xdev -type f -size +500M 2>/dev/null | xargs ls -lh | head -20 —— 全盘搜 500MB 以上,-xdev 防止跨分区误搜
第三步:分类型处理,别硬删
找到大文件后,先看它是什么性质,再决定怎么动:
- 正在写入的日志文件(如 nginx.log、docker 容器日志):用 truncate -s 0 filename 清空内容,保留文件结构和权限,避免服务报错
- 旧日志(确认不再需要):压缩比删除更稳妥,例如 find /var/log -name "*.log" -mtime +7 -exec gzip {} \;
- 临时文件(/tmp、/var/tmp):先确认是否还在被使用,lsof +L1 可查已删但未释放空间的文件;再清理:find /tmp -type f -mtime +1 -delete
- Docker 相关:先 docker system df 看占用明细;清理前运行 docker ps -a 确认无重要停用容器;然后执行 docker system prune -a --volumes
注意:rm -rf 是最后手段,删之前务必确认路径、文件名、是否被进程占用。不确定的,先 ls -l 或 file 看类型,再操作。











