确认在 CentOS 7 服务器上正确配置了 yum-cron

use*_*066 11 security yum centos7

有什么方法可以测试是否yum-cron配置正确?我需要确认它会自动安装安全补丁,并且会在安装时通过电子邮件发送给我。

我安装了 CentOS 7 Web 服务器yum-cron。它已经运行了几个月,我没有收到任何电子邮件,也没有在/var/log/yum.log. 我认为这是因为实际上没有任何安全更新影响我。当我运行时,yum --security list updates我收到消息No packages needed for security,并且我在centos-announce 中没有看到任何影响我的最新关键补丁。

我的/etc/yum/yum-cron.conf看起来像下面这样,使用真实的电子邮件地址而不是administrator@example.com

[commands]
update_cmd = security
update_messages = yes
download_updates = yes
apply_updates = yes

[emitters]
emit_via = stdio,email

[email]
email_from = root@localhost
email_to = root,administrator@example.com
email_host = localhost
Run Code Online (Sandbox Code Playgroud)

小智 6

您的测试看起来是正确的,但问题是不幸的是,主要的 CentOS 存储库没有像 RHEL 那样提供支持仅安全更新所需的信息。有关详细信息,请参阅此讨论:

https://www.centos.org/forums/viewtopic.php?f=47&t=51300

在 CentOS 上,您似乎只能使用 yum-cron 进行自动完整升级,如下所示:

update_cmd = default
Run Code Online (Sandbox Code Playgroud)

否则,您只能从碰巧使用的任何外部存储库(例如 EPEL)获得安全升级。

在我们自己的 CentOS 7 服务器上,我们使用该默认值与下载和仅通知规则相结合,然后我们手动执行这些规则。

作为一种解决方法,您可能会维护一个仅包含安全更新的本地 yum 存储库,并从那里自动应用完整升级。它仍然需要手动维护该安全存储库,但至少您的所有服务器都可以从那里自动升级。


小智 2

您应该能够通过 cron 日志查看作业是否正在运行。

grep yum.cron /var/log/cron | tail -10

如果您在此处看到输出,则可以进行验证。

tail -10 /var/log/yum.log
Run Code Online (Sandbox Code Playgroud)