Debian系统清理:如何优化磁盘使用
小樊
39
2025-12-10 08:20:45
Debian 磁盘清理与空间优化实操指南
一、快速定位占用
- 查看分区使用:运行 df -h,定位哪个挂载点(如 /、/var)占用高。
- 查看块设备:运行 lsblk,确认磁盘与分区布局。
- 分析目录大小:运行 sudo du -sh / | sort -rh | head -20*,找出占用最大的目录;对可疑目录继续 du -sh 逐级下钻。
- 交互式分析:安装并使用 ncdu(如 sudo ncdu /var/log)快速定位大文件/目录。
二、安全清理常见垃圾
- APT 缓存与无用包
- 清理全部缓存:sudo apt-get clean;仅清理过期包:sudo apt-get autoclean。
- 移除不再需要的依赖:sudo apt-get autoremove。
- 彻底删除软件包及配置:sudo apt-get purge <包名>。
- 残余配置与孤儿包
- 列出残留配置:dpkg --list | grep “^rc”;清理:sudo dpkg --purge <包名>。
- 查找并删除孤儿包:安装 deborphan,执行 sudo deborphan | xargs sudo apt-get -y purge。
- 旧内核(谨慎)
- 查看当前内核:uname -r;列出旧内核包:dpkg --list | grep linux-image。
- 删除指定旧内核:sudo apt-get purge linux-image-;更新引导:sudo update-grub。
- 临时文件
- 清理 /tmp:sudo rm -rf /tmp/*(确保无关键进程在使用)。
- 清理 /var/tmp:sudo rm -rf /var/tmp/*。
- 使用系统机制:sudo systemd-tmpfiles --clean(按配置自动清理)。
- 日志与 journald
- 按时间保留:sudo journalctl --vacuum-time=7d。
- 按大小保留:sudo journalctl --vacuum-size=50M。
- 大文件与重复文件
- 查找大文件:sudo find / -type f -size +1G -exec du -h {} + 2>/dev/null。
- 查找重复文件:sudo fdupes -r /path 或 rdfind -r /path。
三、系统配置与维护优化
- 日志轮转:确保 logrotate 已启用并按需配置,避免 /var/log 无限增长。
- 临时文件策略:现代 Debian(如 Debian 13)默认将 /tmp 放入 tmpfs,并在重启后自动清理;/var/tmp 可通过 systemd-tmpfiles 或定时任务按策略清理。
- 可选清理:若使用 nscd,可清理名称服务缓存:sudo nscd -i hosts。
四、空间不足时的扩容与迁移
- 扩容分区/文件系统:在离线或救援环境下使用 gparted 调整分区大小,然后扩展文件系统(如 ext4 的 resize2fs)。
- 新增磁盘/分区:分区并格式化后,挂载到临时目录,迁移数据(如 /home),并在 /etc/fstab 写入挂载项实现开机自动挂载。
- 配额管理:为多用户环境启用 quota,限制用户/组磁盘使用,防止单点占满。
五、自动化与注意事项
- 建议将关键清理动作加入定时任务(如 cron 或 systemd timer),例如定期执行 systemd-tmpfiles --clean 与 journalctl 的日志保留策略。
- 清理 /tmp 与 /var/tmp 前确认无业务进程占用;删除旧内核前务必确认当前运行内核不在删除列表中。
- 操作前务必备份重要数据;对生产环境建议先在测试环境验证命令与顺序。