yum-cron 是一个用于自动执行 yum 更新的工具,特别适合在 RHEL、CentOS 和 Fedora 等基于 RPM 的系统上使用。以下是配置和使用 yum-cron 的完整指南:
sudo yum install -y yum-cron
对于较新的系统(如 CentOS 8/RHEL 8 或 Fedora):
sudo dnf install -y dnf-automatic
主配置文件位于 /etc/yum/yum-cron.conf
,对于 dnf-automatic 则是 /etc/dnf/automatic.conf
。
sudo vi /etc/yum/yum-cron.conf
[commands]
# 更新所有包
update_cmd = default
# 自动应用安全更新
update_cmd = security
# 自动应用所有更新
update_cmd = default
# 是否下载更新
download_updates = yes
# 是否应用更新
apply_updates = yes
[emitters]
# 发送邮件通知
emit_via = email
email_to = root
email_from = root@yourdomain.com
[base]
# 排除某些包不更新
exclude = kernel* php*
sudo systemctl enable --now yum-cron
对于 dnf-automatic:
sudo systemctl enable --now dnf-automatic.timer
sudo systemctl status yum-cron
默认情况下,yum-cron 每天运行一次。要修改计划:
sudo systemctl edit yum-cron.timer
[Timer]
OnCalendar=Tue *-*-* 03:00:00
RandomizedDelaySec=1h
如果只想自动应用安全更新:
[commands]
update_cmd = security
update_messages = yes
download_updates = yes
apply_updates = yes
日志默认位于 /var/log/yum.log
,可以在配置文件中修改:
[logging]
debuglevel = 2
logfile = /var/log/yum.log
检查最近的更新日志:
sudo tail -f /var/log/yum.log
或者查看最近的 yum 历史:
sudo yum history
如果 yum-cron 不能满足需求,可以考虑:
- unattended-upgrades
(Debian/Ubuntu 风格工具)
- 自定义 cron 作业调用 yum update -y
- 配置管理工具如 Ansible、Puppet 或 Chef 来管理更新
通过合理配置 yum-cron,您可以确保系统及时获得安全更新,同时减少手动维护的工作量。