温馨提示×

debian磁盘满怎么清理

小樊
37
2026-10-21 13:21:14
栏目: 智能运维

在 Debian 系统里“磁盘满了”通常分几种情况:根分区满了、某个目录异常增长(日志/缓存/Docker)、或 inode 用尽。下面按实用顺序给你一套清理方案。


一、先确认是“空间满”还是“inode 满”

df -h      # 看磁盘空间
df -i      # 看 inode 数量
  • 如果 Use% 是 100% → 空间满
  • 如果 IUse% 是 100% → 小文件太多(如日志、session)

二、快速定位大文件/大目录

1. 查看哪个目录最大(根分区)

du -h --max-depth=1 / | sort -h

逐步深入,例如:

du -h --max-depth=1 /var | sort -h

2. 找大文件(>100M)

find / -type f -size +100M -exec ls -lh {} \;

三、最常见的清理点(优先做)

1. apt 缓存(非常常见)

apt-get clean

或

rm -rf /var/cache/apt/archives/*

2. 旧内核(Debian 常见爆盘原因)

查看当前内核:

uname -r

查看已安装内核:

dpkg --list | grep linux-image

删除旧内核(保留当前):

apt-get remove --purge linux-image-旧版本

或一键清理:

apt-get autoremove --purge

四、日志清理(/var/log)

1. 查看日志大小

du -sh /var/log/*

2. 清理旧日志

journalctl --vacuum-size=100M

或

rm -f /var/log/*.log.*

⚠ 不要直接删正在写入的日志文件,用 truncate:

truncate -s 0 /var/log/xxx.log

五、Docker(如果装了)

Docker 非常容易吃满磁盘:

docker system df
docker system prune -a

六、用户家目录 & 临时文件

rm -rf ~/.cache/*
rm -rf /tmp/*

七、删除“已删除但被占用”的文件(隐形占用)

有时候文件删了但空间不释放:

lsof | grep deleted

重启对应进程或:

> /proc/进程ID/fd/文件描述符

八、应急方案(根分区 100%)

如果已经无法写入:

echo > /var/log/syslog
apt-get clean

九、长期建议

  • 单独分区 /var、/home
  • 配置 logrotate
  • 监控磁盘:ncdu 工具很好用
apt install ncdu
ncdu /

如果你愿意,可以把下面命令的输出贴出来,我帮你精确判断:

df -h
df -i
du -h --max-depth=1 / | sort -h

0 踩