在 CentOS 系统中清理磁盘垃圾,可以按从安全到深入的顺序来操作。下面给你一套实战常用方案,适用于 CentOS 7 / 8 / Stream。
df -h
查看哪个分区快满了。
再看哪些目录占用大:
du -h --max-depth=1 / | sort -hr | head -20
yum clean all
dnf clean all
清理后缓存位置:
/var/cache/yum
/var/cache/dnf
CentOS 更新后会保留多个内核,非常占空间。
uname -r
rpm -qa | grep kernel
package-cleanup --oldkernels --count=1
适用于 CentOS 7
CentOS 8 可用dnf remove手动删除
du -sh /var/log/*
find /var/log -type f -name "*.log-*" -delete
find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
find /var/log -type f -mtime +30 -delete
rm -rf /tmp/*
或只删 7 天前的:
find /tmp -type f -mtime +7 -delete
docker system df
docker system prune -a
⚠ 会删除:
journalctl --disk-usage
journalctl --vacuum-time=7d
或限制大小:
journalctl --vacuum-size=500M
rm -rf ~/.cache/*
find / -xdev -type f -size +500M
yum install -y yum-utils
0 3 * * 0 yum clean all && journalctl --vacuum-time=7d
yum clean all
journalctl --vacuum-time=7d
rm -rf /tmp/*
find /var/log -type f -name "*.log-*" -delete
/var/lib/mysql、/var/lib/docker 等重要数据如果你愿意,可以把下面两条命令的输出贴出来,我可以直接帮你判断该删哪块:
df -h
du -sh /* 2>/dev/null | sort -hr