Debian垃圾清理的最佳实践
小樊
40
2026-01-02 21:09:36
Debian垃圾清理的最佳实践
一 核心清理清单
- 使用 APT 清理:删除已下载安装包缓存并移除无用依赖,释放 /var/cache/apt/archives 空间。
- 清理日志:限制 journald 日志保留天数与大小,避免 /var/log/journal 膨胀。
- 清理临时文件:按系统机制安全清理 /tmp 与 /var/tmp,避免误删正在使用的文件。
- 清理旧内核:保留当前运行内核,移除历史内核镜像与头文件包。
- 删除孤立包与残留配置:移除不再被依赖的库与软件包,彻底清理配置文件残留。
- 定位大文件与目录:用可视化或命令行工具快速找出占用空间最多的路径并定向处理。
二 安全操作步骤
- APT 缓存与依赖
- 清理全部缓存:sudo apt-get clean
- 仅清理过期缓存:sudo apt-get autoclean
- 移除无用依赖:sudo apt-get autoremove --purge
- 日志(journald)
- 保留最近 7 天:sudo journalctl --vacuum-time=7d
- 限制总大小 100MB:sudo journalctl --vacuum-size=100M
- 临时文件
- 推荐方式(遵循系统策略,安全):sudo systemd-tmpfiles --clean
- 如确需手动清理(生产慎用,避免正在使用的临时文件被删):sudo rm -rf /tmp/*
- 旧内核
- 查看当前内核:uname -r
- 列出已安装内核:dpkg --list | grep linux-image
- 移除指定旧版本(示例):sudo apt-get remove --purge linux-image- linux-headers-
- 清理残留依赖:sudo apt-get autoremove --purge
- 孤立包与残留配置
- 查找孤立库:sudo deborphan
- 删除孤立包:sudo apt-get remove --purge $(deborphan)
- 大文件定位
- 快速扫描:sudo ncdu /
- 备选:sudo du -sh /* | sort -h
三 定期自动化
- 使用系统定时器(推荐):创建 /etc/cron.daily/cleanup,内容示例:
- #!/bin/sh
apt-get clean
apt-get autoclean
apt-get autoremove --purge -y
journalctl --vacuum-time=7d
journalctl --vacuum-size=100M
systemd-tmpfiles --clean
- 赋权:sudo chmod +x /etc/cron.daily/cleanup
- 如需更细粒度控制,可用 systemd-tmpfiles 配置 /etc/tmpfiles.d/*.conf 来定义 /tmp 与 /var/tmp 的清理规则,并由 systemd 按计划执行。
四 注意事项与常见误区
- 不要手动清理 /var/log 下的正在写入日志文件;使用 journalctl 的 –vacuum-time 与 –vacuum-size 更安全。
- 清理 /tmp 前确认无关键任务在使用;优先使用 systemd-tmpfiles --clean,避免直接 rm -rf 引发运行中程序异常。
- 清理内存缓存(pagecache/dentries/inodes)仅在测试或特殊场景需要:
- 查看:free -h
- 执行:sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
- 说明:Linux 会用空闲内存做缓存,日常无需手动清理,以免影响性能。
- 删除旧内核务必先确认当前运行版本(uname -r),避免误删正在使用的内核导致无法启动。
- 清理操作前请备份重要数据;对生产环境建议先在测试环境验证命令与影响范围。