Debian磁盘空间清理与回收实战指南

一 快速定位磁盘占用
- 查看整体使用情况:执行df -h,重点关注根分区(如**/)以及/var**等目录所在分区是否接近满载。
- 分析目录空间占用:执行sudo ncdu /(或指定目录如**/var/log**),快速找出占用磁盘空间较大的文件和目录。
- 查看块设备信息:执行lsblk,确认当前磁盘、分区和挂载布局,便于后续进行扩容、迁移或优化。
二 包管理与APT缓存清理
- 清理缓存与无用软件包:
- 清理全部已下载的软件包缓存:sudo apt-get clean
- 仅清理过期的软件包缓存:sudo apt-get autoclean
- 移除系统中不再需要的依赖包:sudo apt-get autoremove
- 彻底卸载软件及其配置文件:sudo apt-get purge 包名
- 删除残留配置(状态为rc的包):
- 查看:dpkg --list | grep “^rc”
- 清理:dpkg --list | grep “^rc” | cut -d " " -f 3 | xargs sudo dpkg --purge
- 查找并删除孤儿包:
- 安装工具:sudo apt-get install deborphan
- 删除孤儿包:deborphan | xargs sudo apt-get purge -y
- 删除过时软件包(需安装aptitude):sudo aptitude purge ‘~o’
- 可选:按体积列出较大的软件包(需安装debian-goodies):dpigs -H。
三 日志与临时文件清理
- 清理systemd日志(journald):
- 按时间仅保留最近7天日志:sudo journalctl --vacuum-time=7d
- 按大小限制日志最大为50M:sudo journalctl --vacuum-size=50M
- 清理系统临时目录:
- 清理**/tmp**:sudo rm -rf /tmp/*
- 清理**/var/tmp**:sudo rm -rf /var/tmp/*
- 使用systemd-tmpfiles执行定期清理:sudo systemd-tmpfiles --clean
- 使用tmpwatch自动清理临时文件(如删除24小时未访问文件):sudo tmpwatch 24h /tmp
- 图形化清理工具(可选):sudo apt-get install bleachbit && sudo bleachbit。
四 旧内核与容器镜像清理
- 删除旧内核(示例,请先确认当前内核版本,避免误删正在使用的内核):
- 查看当前内核:uname -r
- 列出已安装内核:dpkg --list | grep linux-image
- 安全移除旧版本内核:sudo apt-get purge linux-image-<版本号>-generic
- 清理容器镜像与构建缓存(如Docker/Containerd):
- Docker:docker system prune -af --volumes
- Podman:podman system prune -af
- 注意:上述命令会删除未使用的镜像、容器和卷,执行前请确认不会影响现有业务。
五、空间不足时的扩容与迁移
- 扩容LVM逻辑卷(示例思路):
- 查看当前空间情况:df -h、lvs
- 扩展逻辑卷:sudo lvextend -L +10G /dev/mapper/vg0-root
- 调整文件系统大小:
- ext2/ext3/ext4:sudo resize2fs /dev/mapper/vg0-root
- XFS:sudo xfs_growfs /
- 非LVM场景:可使用gparted等工具调整分区,或在新增磁盘/分区后,将**/home或/var等占用较大的目录迁移到新磁盘,再更新/etc/fstab**挂载配置。
- 风险提示:分区调整和磁盘扩容操作存在数据丢失风险,务必提前进行完整备份,并在操作前确认关键业务可停机。
