Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.7. 使用 Yum-cron 自动刷新软件包数据库和下载更新

yum-cron 服务会自动检查并下载软件包更新。安装后 yum-cron 服务提供的 cron 作业将立即处于活动状态。yum-cron 服务也可以自动安装下载的更新。

使用默认设置,yum-cron 服务:

  • 每小时更新 yum 缓存中的元数据。
  • 将待处理软件包更新下载至 yum 缓存每天一次。如果存储库中提供了新软件包,则会发送电子邮件。如需更多信息,请参阅第 第 9.7.2 节 “设置可选电子邮件通知” 章。

yum-cron 服务有两个配置文件:

/etc/yum/yum-cron.conf
用于日常任务。
/etc/yum/yum-cron-hourly.conf
用于每小时任务。

9.7.1. 启用自动安装更新

要启用自动安装下载的更新,请通过设置 apply_updates 选项来编辑每日安装的配置文件或每小时安装的配置文件:

apply_updates = yes

9.7.2. 设置可选电子邮件通知

默认情况下,yum-cron 服务使用 cron 来发送包含已执行命令输出的电子邮件。此电子邮件按照 cron 配置发送,通常发送到本地超级用户,并存储在 /var/spool/mail/root 文件中。

您可以使用不同于影响所有 cron 作业 的设置的特定电子邮件配置。但是,此电子邮件配置不支持 TLS,整个电子邮件内置逻辑非常基本。

启用 yum-cron 内置电子邮件通知:

  1. 打开所选 yum-cron 配置文件:

    /etc/yum/yum-cron.conf
    用于日常任务。
    /etc/yum/yum-cron-hourly.conf
    用于每小时任务。
  2. [emitters] 部分,设置以下选项:

    emit_via = email
  3. 根据需要设置 email_fromemail_toemail_host 选项

9.7.3. 启用或禁用特定存储库

yum-cron 不支持对存储库的特定配置。作为为 yum-cron 启用或禁用特定软件仓库的一个临时解决方案,但一般不要为 yum 启用或禁用以下步骤:

  1. 创建系统任意位置的空存储库配置目录。
  2. /etc/yum.repos.d/ 目录中的所有配置文件复制到此新创建的目录中。
  3. /etc/yum.repos.d/ 中的对应. repo 配置文件中, 按如下所示设置 启用 的选项:

    已启用 = 1
    启用存储库:
    已启用 = 0
    以禁用存储库。
  4. 在所选 yum-cron 配置文件的末尾添加以下选项,它指向新创建的存储库目录:

    reposdir=/path/to/new/reposdir

9.7.4. 测试 Yum-cron 设置

在不等待下一次调度 yum-cron 任务的情况下测试 yum-cron 设置:

  1. 打开所选 yum-cron 配置文件:

    /etc/yum/yum-cron.conf
    用于日常任务。
    /etc/yum/yum-cron-hourly.conf
    用于每小时任务。
  2. 在所选配置文件中设置 random_sleep 选项,如下所示:

    random_sleep = 0
  3. 运行配置文件:

    # yum-cron /etc/yum/yum-cron.conf
    # yum-cron /etc/yum/yum-cron-hourly.conf

9.7.5. 禁用 Yum-cron 消息

yum-cron 消息无法完全禁用,但只能限制为具有关键优先级的消息。限制信息:

  1. 打开所选 yum-cron 配置文件:

    /etc/yum/yum-cron.conf
    用于日常任务。
    /etc/yum/yum-cron-hourly.conf
    用于每小时任务。
  2. 在配置文件的 [base] 部分中设置以下选项:

    debuglevel = -4

9.7.6. 自动清除软件包

yum-cron 服务不支持删除与 yum clean all 命令类似的包的任何配置选项。要自动清理软件包,您可以将 cron 作业创建为可执行 shell 脚本:

  1. /etc/cron.daily/ 目录中创建一个 shell 脚本,其中包含:

    #!/bin/sh
    yum clean all
  2. 使脚本可执行:

    # chmod +x /etc/cron.daily/script-name.sh