Debian磁盘空间清理实用指南

一 快速定位占用
- 查看整体磁盘使用情况:使用命令:df -h,可快速判断哪个分区或挂载点空间已满。
- 查看块设备与分区结构:使用命令:lsblk。
- 分析目录空间占用:进入可疑目录后逐级检查,例如:*du -sh ;du -h --max-depth=1 /var。
- 交互式定位大文件或大目录:安装并使用 ncdu,例如:sudo apt-get install ncdu && sudo ncdu /var/log。
以上命令可以快速找出“哪个分区/目录/文件”占用了大量磁盘空间,便于后续进行针对性清理。
二 包管理与 APT 缓存清理
- 清理已下载的软件包缓存:
- sudo apt-get clean(清空 /var/cache/apt/archives/ 下所有 .deb 文件)
- sudo apt-get autoclean(仅删除过期或无法再次下载的旧包)
- 移除不再需要的依赖包:
- sudo apt-get autoremove(删除自动安装但当前已不再被依赖的软件包)
- 连同配置文件一起删除:sudo apt-get autoremove --purge
- 彻底卸载软件及其配置文件:
- sudo apt-get purge 包名
- 删除残留配置(状态为 rc 的软件包):
- 查看:dpkg --list | grep “^rc”
- 清理:sudo dpkg --purge $(dpkg --list | awk ‘/^rc/ {print $2}’)
- 查找并删除孤儿包:
- 安装工具:sudo apt-get install deborphan
- 删除孤儿包:deborphan | xargs sudo apt-get -y purge
- 查找“过时”的软件包(已不再来自任何软件仓库):
- aptitude search ?obsolete(通过 aptitude 查看)
- 确认无误后逐条执行 sudo apt-get purge 包名
- 可选:查看占用空间最大的已安装软件包(需先安装):sudo apt-get install dpigs && dpigs -H
以上步骤基本覆盖了 Debian 系统中 APT 缓存、无用依赖、残留配置、孤儿包和过时软件包等常见磁盘占用来源。
三 日志与临时文件清理
- 清理 systemd 日志(journald):
- 按时间保留最近 7 天:sudo journalctl --vacuum-time=7d
- 限制日志总大小:sudo journalctl --vacuum-size=50M
- 清理旧日志文件:
- 删除 /var/log 下已压缩的旧日志:sudo rm -f /var/log/*.gz(请谨慎操作)
- 删除超过 30 天 的日志文件:sudo find /var/log -type f -mtime +30 -delete
- 清理临时目录文件:
- 清空 /tmp(系统重启后通常也会自动清理,生产环境建议先确认没有正在使用的临时文件):sudo rm -rf /tmp/;sudo rm -rf /var/tmp/(按需)
- 图形化清理工具(可选):sudo apt-get install bleachbit && sudo bleachbit
以上方法可有效释放日志文件和临时文件占用的空间,避免 /var 分区长期被占满。
四 安全移除旧内核
- 确认当前正在运行的内核版本:uname -r
- 列出系统中已安装的内核:dpkg -l | grep linux-image
- 删除旧内核(通常保留当前内核和上一个稳定版本更稳妥):
- 示例:sudo apt-get purge linux-image-<旧版本> linux-headers-<旧版本>
- 批量安全清理(保留当前与上一个版本):sudo apt autoremove --purge linux-image-(按提示确认)
- 更新引导配置:sudo update-grub
- 重启系统:sudo reboot
务必确认不要删除当前正在使用的内核,删除完成后记得更新 GRUB,避免系统引导异常。
五、空间不足时的扩容与迁移
- 扩展 LVM 逻辑卷(示例思路):
- 查看:df -h;lvs;vgs
- 扩展 LV:sudo lvextend -L +10G /dev/mapper/vg0-root
- 调整文件系统:
- ext2/3/4:sudo resize2fs /dev/mapper/vg0-root
- xfs:sudo xfs_growfs /
- 非 LVM 场景:
- 使用 gparted 调整分区大小(需谨慎操作,建议提前备份数据)
- 添加新磁盘或新分区,将 /home 等目录迁移到新盘,再更新 /etc/fstab 挂载配置
- 其他优化:
- 查找并删除重复文件:sudo apt-get install fdupes && fdupes -rdN /path
- 卸载不常用的软件:sudo apt-get remove 包名
当分区容量本身过小,或业务数据持续增长时,扩容或数据迁移往往比反复清理磁盘空间更有效、更彻底。
