先确认真实占用目录再清理:用df -h看根分区使用率,sudo du -sh /* | sort -hr定位大目录,/var/log、/var/cache、/tmp是安全清理突破口;严禁盲删/usr、/lib等系统基石目录。

直接清理系统目录前,先确认哪些目录真占空间、哪些能安全动。盲目删 /usr 或 /lib 会直接让系统无法启动,但 /var/log、/var/cache、/tmp 这些位置常年堆积垃圾,是释放空间最稳妥的突破口。
查清楚哪块地方真吃空间
别猜,用命令看实情:
-
整体分区占用:运行
df -h,重点关注/(根分区)和/var的 Use%;如果超过 90%,就得动手 -
大目录定位:执行
sudo du -sh /* 2>/dev/null | sort -hr | head -10,一眼看出 /var、/usr、/home 谁在“撑肚子” -
大文件快筛:比如找大于 500MB 的文件,用
find / -type f -size +500M 2>/dev/null,结果里重点盯日志、缓存、旧备份类路径
/var/log:日志不轮转,三天就能吃掉 10GB
这是最常被忽略、也最易见效的地方。系统和服务日志默认只增不减,尤其 nginx、mysql、journalctl 日志。
- 清 systemd 日志(推荐):
sudo journalctl --vacuum-size=300M,保留最近 300MB,自动删旧 - 清旧归档日志:
sudo find /var/log -name "*.log.*" -type f -delete - 截断正在写入的大日志(如爆满的 syslog):
sudo truncate -s 0 /var/log/syslog,不删文件、只清内容,进程无感知 - 长期解决:检查
/etc/logrotate.conf,确保rotate 7、compress、maxsize 100M等参数已启用
/var/cache 和包管理器缓存
软件安装时下载的 .deb、.rpm、.pkg.tar.zst 全堆在这里,装完就闲置,纯占地方。
- Debian/Ubuntu:
sudo apt clean(清空所有缓存)+sudo apt autoremove --purge(卸载残留配置) - RHEL/CentOS/Fedora:
sudo dnf clean all+sudo dnf autoremove - Arch Linux:
sudo pacman -Scc(清缓存)+sudo pacman -Rns $(pacman -Qtdq)(删孤儿包) - 顺手看看:
du -sh /var/cache/* | sort -hr,有时 docker、flatpak 的 cache 占比惊人
/tmp 和 /var/tmp:临时≠不能删,但得懂时机
这两个目录本就是为临时数据设计,重启自动清空。只要没人在用,随时可清。
- 安全清理:
sudo rm -rf /tmp/*和sudo rm -rf /var/tmp/* - 注意:执行前运行
lsof +D /tmp,确认没有进程正打开 /tmp 下的文件;若有,等它结束或重启服务再操作 - 更省心办法:设 systemd 定时任务,每天凌晨清 /tmp,避免手动干预
清理不是一劳永逸的事。把 journalctl 大小限制住、logrotate 配好、定期跑 autoremove,比每月手动删一次更可靠。关键不在“删得多”,而在“不再涨”。


















