插件窝 干货文章 使用 yum-cron 自动更新 Linux系统

使用 yum-cron 自动更新 Linux系统

更新 yum 配置 cron 746    来源:    2025-05-15

使用 yum-cron 自动更新 Linux 系统

yum-cron 是一个用于自动执行 yum 更新的工具,特别适合在 RHEL、CentOS 和 Fedora 等基于 RPM 的系统上使用。以下是配置和使用 yum-cron 的完整指南:

1. 安装 yum-cron

sudo yum install -y yum-cron

对于较新的系统(如 CentOS 8/RHEL 8 或 Fedora):

sudo dnf install -y dnf-automatic

2. 配置 yum-cron

主配置文件位于 /etc/yum/yum-cron.conf,对于 dnf-automatic 则是 /etc/dnf/automatic.conf

基本配置选项

  1. 打开配置文件:
sudo vi /etc/yum/yum-cron.conf
  1. 重要配置项:
[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*

3. 启动并启用服务

sudo systemctl enable --now yum-cron

对于 dnf-automatic:

sudo systemctl enable --now dnf-automatic.timer

4. 检查服务状态

sudo systemctl status yum-cron

5. 高级配置

设置更新计划

默认情况下,yum-cron 每天运行一次。要修改计划:

  1. 编辑计时器单元:
sudo systemctl edit yum-cron.timer
  1. 添加以下内容(例如设置为每周二凌晨3点):
[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

6. 验证自动更新

检查最近的更新日志:

sudo tail -f /var/log/yum.log

或者查看最近的 yum 历史:

sudo yum history

7. 注意事项

  1. 生产环境谨慎:在生产服务器上自动应用更新前,建议先在测试环境验证
  2. 内核更新:内核更新可能需要重启,考虑排除或安排维护窗口
  3. 依赖问题:某些更新可能会引入依赖问题,确保有回滚计划
  4. 备份:重要系统在自动更新前应有完整备份
  5. 监控:设置监控以确保自动更新不会导致服务中断

8. 替代方案

如果 yum-cron 不能满足需求,可以考虑: - unattended-upgrades(Debian/Ubuntu 风格工具) - 自定义 cron 作业调用 yum update -y - 配置管理工具如 Ansible、Puppet 或 Chef 来管理更新

通过合理配置 yum-cron,您可以确保系统及时获得安全更新,同时减少手动维护的工作量。