Debian(或其他 Linux 系统)“磁盘满”的原因有很多,通常不是单一问题。下面按常见程度和排查思路给你系统说明。
一、最常见的几种原因
1. 日志文件(log)无限增长
- 位置:
/var/log/ - 常见于:
syslog、messages- 某个服务疯狂报错(如 nginx、mysql、docker)
- 表现:
du -sh /var/log/*
✅ 解决:
journalctl --vacuum-size=200M
rm -f /var/log/xxx.log.*
2. APT 缓存占满
- 位置:
/var/cache/apt/archives/ - 装了很多软件或长期不清理
✅ 解决:
apt clean
apt autoclean
3. Docker / 容器占用
- 镜像、容器、卷不断累积
- 位置:
/var/lib/docker/
✅ 解决:
docker system prune -a
4. deleted 文件仍被进程占用(“假满”)
- 文件已删,但进程没释放
df显示满,du却找不到
✅ 检查:
lsof | grep deleted
✅ 解决:
- 重启对应服务
- 或
kill占用进程
5. 小文件 / inode 耗尽
- 磁盘空间没满,但 inode 满
df -i
常见于:
- 邮件队列
- session 文件
- 缓存目录
6. 备份 / 下载文件堆积
/root、/home- 数据库 dump、tar 包
二、快速排查命令(必会)
# 看哪个分区满
df -h
# 看目录占用
du -sh /* 2>/dev/null
du -sh /var/* 2>/dev/null
# 找大文件
find / -type f -size +500M
三、Debian 特有注意点
/var单独分区时最容易满- 默认不自动清理 journal
- 服务器常因 未配置 logrotate
四、如果你想更精准
你可以贴出:
df -h
du -sh /* 2>/dev/null
我可以直接帮你判断是哪一种原因,并给出具体清理命令。