Debian回收磁盘空间的技巧有哪些
小樊
31
2026-01-01 01:59:52
Debian回收磁盘空间的实用技巧
一 快速定位占用
- 查看分区使用:运行 df -h,快速识别哪个挂载点(如 /、/var)占用高。
- 分析目录占用:
- 终端高效分析:安装并使用 ncdu,如 sudo ncdu /var/log 或 ncdu /,按大小排序并可直接删除。
- 图形界面:桌面环境可用 baobab 做可视化扫描。
- 查找大文件:定位大于 1GB 的文件,便于快速处置异常大文件(谨慎删除)。
二 APT与软件包清理
- 清理包缓存:
- sudo apt-get clean(清空 /var/cache/apt/archives 下所有 .deb,立即释放空间)
- sudo apt-get autoclean(仅删除已不可下载的过期包)
- 移除无用依赖:
- sudo apt-get autoremove(删除不再需要的依赖)
- 更彻底:sudo apt-get autoremove --purge(同时清理残留配置)
- 删除残留配置:
- 列出残留: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
- 查找过时包:sudo aptitude search ?obsolete(确认后再 purge)
- 删除旧内核(务必保留当前在用版本):
- 查看当前内核:uname -r
- 删除指定旧版本:sudo apt-get purge linux-image-x.x.x-x-generic
- 安全做法:用 aptitude search ‘~i~nlinux-image’ 查看已安装内核,逐一定期清理旧版。
三 日志与临时文件
- 清理 systemd 日志(journald):
- 按时间保留:sudo journalctl --vacuum-time=7d(保留最近 7 天)
- 按大小保留:sudo journalctl --vacuum-size=100M
- 必要时先轮转:sudo journalctl --rotate
- 清理应用与系统日志:
- 目录分析:sudo ncdu /var/log
- 清空单个日志(文件句柄有效):sudo dd if=/dev/null of=/var/log/filename
- 清理临时文件:
- 系统临时目录:sudo rm -rf /tmp/*(确认无正在使用的临时文件)
- 可选桌面缓存:清理用户缩略图 rm -rf ~/.cache/thumbnails/*(按需)
四 容器与虚拟化场景
- Docker 资源回收:
- 全面清理(停止容器、悬挂镜像、无用卷/网络/构建缓存):docker system prune -a -f
- 单独清理:
- docker volume prune -f
- docker image prune -a -f
- docker container prune -f
- docker network prune -f
- docker builder prune -f
- LVM 与虚拟机磁盘:
- 查看卷组/物理卷:vgs、pvs
- 删除无用逻辑卷:sudo lvremove /dev/mapper/-(路径按实际替换)
- 虚拟机磁盘扩容后:先扩容分区/逻辑卷,再扩展文件系统(如 resize2fs)。
五 进阶与注意事项
- 谨慎清理内存缓存:仅在测试或特殊场景执行(不会回收磁盘,仅释放页缓存/目录项缓存)
- 同步数据:sudo sync
- 释放缓存:echo 3 | sudo tee /proc/sys/vm/drop_caches(1=pagecache,2=dentries/inodes,3=全部)
- 查找并处理重复文件:sudo apt-get install fdupes 或 rdfind,定位并删除重复内容(先核对再删)。
- 安全建议:
- 重要操作前先备份关键数据。
- 删除旧内核前务必确认当前运行内核:uname -r。
- 对 /var/log、数据库文件、容器卷等生产数据谨慎处理,避免直接删除正在写入的文件。
- 建议将 apt-get autoclean && apt-get autoremove 及日志轮转纳入定期维护(如每周/每月)。