定制 Debian 清理方案
一 目标与原则
- 明确目标:优先释放**/var与/home空间,降低/boot**爆满风险,保持系统可回滚与安全更新能力。
- 最小影响:避免删除正在使用的内核、日志、会话临时文件与容器/数据库数据。
- 可回滚:优先使用包管理器的remove/purge/autoremove,变更前做好备份与快照。
- 可度量:每次清理前后用df -h、du -sh、ncdu对比空间变化,形成记录。
二 清理范围与推荐阈值
| 清理项 |
推荐命令或配置 |
建议阈值或频率 |
风险提示 |
| APT 缓存 |
apt clean / apt autoclean |
每周或每次大版本升级后 |
仅清理缓存,不影响已安装软件 |
| 不再需要的依赖 |
apt autoremove --purge |
每次 apt 操作后 |
若曾手动 hold 包,先解除 hold |
| 旧日志与 journal |
journalctl --vacuum-time=7d;/var/log 旧轮转日志按 logrotate 保留 |
日志保留7–30天 |
生产环境勿过短,便于排障 |
| 临时文件 |
find /tmp -mindepth 1 -mtime +1 -delete;/var/tmp 同理 |
每日或每两日 |
避免删除正在使用的会话文件 |
| 旧内核 |
apt purge linux-image- linux-headers- |
保留当前+1个旧内核 |
删除前确认当前内核:uname -r |
| 孤立包与残留配置 |
deborphan / gtkorphan;dpkg -l |
视结果清理 |
谨慎处理库包,避免破坏依赖 |
| 大文件扫描 |
ncdu /;find / -size +100M -xdev |
每月或磁盘告警时 |
先确认文件用途再删除 |
| 浏览器缓存 |
浏览器设置或 BleachBit |
每周 |
避免误删下载/书签 |
| Docker 资源 |
docker system prune -af --volumes |
每周或构建频繁时 |
会删除停止容器与悬空镜像 |
| SSD TRIM |
fstrim -av |
每周 |
仅对 SSD 且已挂载的目录执行 |
以上阈值与命令为常用安全实践,可按业务重要性调优。
三 自动化与定时策略
- 使用 APT 周期任务
- 建议将 apt 更新与清理放入周期性任务,减少人为遗漏:
- 示例(root 的 crontab):
0 3 * * * apt update && apt full-upgrade -y && apt autoremove -y && apt autoclean -y
- 使用 unattended-upgrades 做安全更新
- 安装并启用自动安全更新,减少风险暴露窗口:
- sudo apt install unattended-upgrades
- sudo dpkg-reconfigure unattended-upgrades
- 临时文件与日志的定时清理
- /tmp 清理(root crontab):
0 2 * * * find /tmp -mindepth 1 -mtime +1 -delete
- 系统日志轮转:确保 /etc/logrotate.conf 与 /etc/logrotate.d/ 正确配置(如保留7天、压缩旧日志)。
- systemd 定时清理(若系统提供)
- 部分新版本提供 systemd 临时目录清理服务,可按需启用,统一清理 /var/tmp 超期文件。
- 可选:内存缓存清理
- 不建议常规清理,仅在特殊场景(如基准测试)使用:
sync && echo 3 > /proc/sys/vm/drop_caches
- 若确需定时,务必低峰期执行并限制频率。
四 按场景的定制方案
- 桌面与笔记本
- 重点清理:浏览器缓存、缩略图、旧日志、下载目录;可用 BleachBit 做隐私清理。
- 建议:每周一次用户级清理,每月一次系统级清理;保留至少2个内核版本。
- 服务器(无 GUI)
- 重点清理:journal、旧日志、临时文件、旧内核、未使用容器/镜像。
- 建议:开启 unattended-upgrades;日志保留7–14天;/tmp 与 /var/tmp 每日清理;每周执行一次 APT 清理与镜像/容器垃圾回收。
- 容器与开发环境
- 重点清理:Docker 停止容器、悬空镜像、无用卷与构建缓存。
- 建议:每次 CI 后执行 prune;每周一次全量回收;避免在生产主机上堆积构建产物。
- 低配 VPS 与嵌入式
- 重点清理:APT 缓存、旧日志、旧内核;谨慎使用 ncdu 定位大文件。
- 建议:保留1个旧内核;日志保留3–7天;必要时启用 fstrim(SSD)。
五 安全操作清单与回滚
- 操作前
- 备份关键数据与配置;记录当前内核版本:uname -r;检查磁盘使用:df -h。
- 操作中
- 包管理优先:apt remove/purge/autoremove;删除旧内核前再次确认当前内核与引导项。
- 日志与临时文件:优先用 journalctl 与 logrotate 策略化清理,避免粗暴删除 /var/log 正在写入的文件。
- 大文件:用 ncdu 或 find 定位,确认无用后再删除;避免误删数据库/容器数据卷。
- 操作后
- 复核空间:df -h、du -sh;检查服务状态:systemctl --failed;必要时重启相关服务。
- 回滚与应急
- 包误删:apt install 重装;重要配置文件误删:从备份恢复或从版本控制检出。
- 内核误删:使用 GRUB 选择旧内核启动,再重新安装缺失内核包。