结论与总体思路 没有一个内置的“一键全自动清理”命令,但 CentOS 可以通过系统自带机制(如 logrotate、包管理器自清理)与定时任务(cron)组合,实现无人值守的定期清理。对于CentOS 7重点是 yum + logrotate + cron;对于CentOS 8/Stream重点是 dnf + logrotate + systemd-journald 配置 + cron。
可自动化的清理项与做法
设置自动化的两种方式
#!/bin/bash
set -e
yum clean all
yum autoremove -y
package-cleanup --oldkernels --count=2 -y
journalctl --vacuum-time=1w
journalctl --vacuum-size=500M
find /tmp -mindepth 1 -mtime +1 -delete 2>/dev/null || true
find /var/tmp -mindepth 1 -mtime +1 -delete 2>/dev/null || true
#!/bin/bash
set -e
dnf clean all
dnf autoremove -y
dnf remove $(dnf repoquery --installonly --latest-limit=-2) 2>/dev/null || true
journalctl --vacuum-time=1w
journalctl --vacuum-size=500M
find /tmp -mindepth 1 -mtime +1 -delete 2>/dev/null || true
find /var/tmp -mindepth 1 -mtime +1 -delete 2>/dev/null || true
chmod +x /usr/local/bin/cleanup.sh
echo "0 2 * * * root /usr/local/bin/cleanup.sh >> /var/log/cleanup.log 2>&1" | tee /etc/cron.d/cleanup
systemctl enable --now crond
注意事项与建议