ubuntu如何定期清理系统垃圾
小樊
33
2026-01-01 23:38:20
Ubuntu定期清理系统垃圾的实用方案
一 核心清理命令
- 清理 APT 缓存与无用依赖
- 删除旧版本包缓存:sudo apt-get autoclean
- 删除全部包缓存:sudo apt-get clean
- 删除不再需要的包与依赖:sudo apt-get autoremove --purge
- 清理 systemd 日志(Journal)
- 按时间保留:sudo journalctl --vacuum-time=7d(保留最近7天)
- 按体积保留:sudo journalctl --vacuum-size=500M(最大500MB)
- 清理缩略图缓存
- 用户级:rm -rf ~/.cache/thumbnails/*
- 清理临时文件
- 系统临时目录:sudo rm -rf /tmp/*(生产环境建议用更安全方式,见下节)
- 清理旧内核(务必保留当前在用内核)
- 查看当前内核:uname -r
- 列出已安装内核:dpkg --list 'linux-image’*
- 删除指定旧内核(示例):sudo apt-get purge linux-image--generic
- 可选 清理孤立包与残留配置
- 查找孤立库:sudo deborphan
- 删除孤立包:sudo deborphan | xargs sudo apt-get -y remove --purge
- 清理残留配置(状态为 rc 的包):dpkg -l | grep ^rc | awk ‘{print $2}’ | xargs sudo dpkg -P
以上命令覆盖了最常见的空间占用点,适合作为日常与定期维护的基础操作。
二 自动化与定时执行
- 使用 systemd 定时清理日志(推荐)
- 查看与启用定时器:sudo systemctl enable --now systemd-tmpfiles-clean.timer
- 说明:该定时器会按 /usr/lib/systemd/system/systemd-tmpfiles-clean.timer 的设定定期清理临时目录(如 /tmp),无需额外脚本。
- 使用 Cron 做例行维护(示例)
- 编辑 root 的定时任务:sudo crontab -e
- 示例(每天 03:00 执行,按需增减):
- 清理 APT 缓存:0 3 * * * apt-get -y autoclean && apt-get -y clean
- 清理旧日志:0 3 * * * journalctl --vacuum-time=7d
- 安全清理 /tmp(见下节脚本):0 3 * * * /usr/local/bin/clean_tmp.sh
- 安全清理 /tmp 的推荐脚本(避免误删正在使用的文件)
- 新建脚本:sudo nano /usr/local/bin/clean_tmp.sh
- 内容:
- #!/bin/bash
- find /tmp -mindepth 1 -maxdepth 1 -mtime +1 -delete
- 说明:仅删除 /tmp 下超过 1天 未被修改的文件/目录,规避正在使用的临时文件风险。
- 赋权:sudo chmod +x /usr/local/bin/clean_tmp.sh
上述方案分别利用系统自带的定时器与 Cron 实现“无人值守”的定期清理,兼顾安全与可控性。
三 图形化工具与辅助排查
- 图形化清理工具
- BleachBit:系统级与应用缓存、浏览器缓存清理(支持深度清理项)
- Stacer:系统优化与清理的一体化工具
- Ubuntu Cleaner(社区维护):清理 APT 缓存、缩略图、旧内核等(如已安装源可用)
- 快速定位大文件与空间占用
- 全盘 Top10:sudo du -ah / | sort -nr | head -n 10
- 查找大文件:sudo find / -type f -size +100M
- 交互式分析:sudo ncdu /(更直观地定位“吃空间”的目录)
这些工具能帮助你在清理前后快速评估效果,并发现异常的大文件或目录。
四 注意事项与避坑
- 删除旧内核前务必确认当前内核:uname -r,只删除明确不再需要的旧版本,避免误删导致无法启动。
- 清理 /tmp 不建议用粗暴的 rm -rf /tmp/*;优先使用 systemd-tmpfiles-clean 或按“修改时间/访问时间”条件删除的脚本,避免影响正在运行的程序。
- 清理日志前可先确认占用:sudo journalctl --disk-usage,再决定保留周期或体积上限,避免误删关键诊断信息。
- 执行清理操作前建议备份重要数据;对生产环境建议在维护时间窗口内操作,并先在测试环境验证脚本安全性。