温馨提示×

centos cleanup怎么自动清理

小樊
36
2026-09-06 05:34:38
栏目: 智能运维

在 CentOS 上做自动清理,通常可以从 系统日志/临时文件/软件包/yum缓存/旧内核 几个方面入手,并用 systemd timer / cron 定时执行。

下面给你一套实用可落地方案


一、使用系统自带工具(推荐)

1. 自动清理临时文件(systemd-tmpfiles)

CentOS 7/8 自带:

systemctl status systemd-tmpfiles-clean

默认每天清理 /tmp/var/tmp 等。

查看规则:

cat /usr/lib/tmpfiles.d/tmp.conf

如想立即执行:

systemd-tmpfiles --clean

2. 自动清理 yum / dnf 缓存

CentOS 7:

yum clean all

CentOS 8 / Stream:

dnf clean all

自动定时(每天):

cat > /etc/cron.daily/clean-yum <<'EOF'
#!/bin/bash
yum clean all >/dev/null 2>&1
EOF
chmod +x /etc/cron.daily/clean-yum

二、自动清理旧内核(非常重要)

CentOS 7

package-cleanup --oldkernels --count=2

定时任务:

cat > /etc/cron.weekly/kernel-clean <<'EOF'
#!/bin/bash
package-cleanup --oldkernels --count=2
EOF
chmod +x /etc/cron.weekly/kernel-clean

CentOS 8+

dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q)

三、清理日志(journalctl)

限制 journal 日志大小

journalctl --vacuum-size=200M
journalctl --vacuum-time=7d

永久配置:

vi /etc/systemd/journald.conf
SystemMaxUse=200M
MaxRetentionSec=7day

重启:

systemctl restart systemd-journald

四、自定义自动清理脚本(最灵活)

示例脚本 /usr/local/bin/centos-cleanup.sh

#!/bin/bash
# 清理 yum 缓存
yum clean all

# 清理旧内核
package-cleanup --oldkernels --count=2

# 清理 journal
journalctl --vacuum-time=7d

# 清理 /tmp
find /tmp -type f -mtime +7 -delete

# 清理日志
find /var/log -type f -name "*.log" -mtime +30 -delete

赋予权限:

chmod +x /usr/local/bin/centos-cleanup.sh

五、用 cron 定时执行(推荐)

每天凌晨 3 点:

crontab -e
0 3 * * * /usr/local/bin/centos-cleanup.sh

六、CentOS 8+ 可用 systemd timer(更现代)

示例(简化):

cat > /etc/systemd/system/cleanup.service <<EOF
[Unit]
Description=CentOS Cleanup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/centos-cleanup.sh
EOF

cat > /etc/systemd/system/cleanup.timer <<EOF
[Unit]
Description=Daily Cleanup

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
EOF

systemctl enable --now cleanup.timer

七、常见清理点总结

项目 命令
yum缓存 yum clean all
旧内核 package-cleanup
journal journalctl --vacuum
/tmp systemd-tmpfiles
日志 find /var/log

如果你愿意,我可以:

  • ✅ 按 CentOS 7 / 8 / Stream 给你精确版本
  • ✅ 给你一个 安全不误删的清理脚本
  • ✅ 帮你配置 只清理不重启

你用的是 CentOS 几?服务器还是虚拟机?

0