定时yum更新系统

操作系统的维护很重要的工作是升级补丁,以解决安全补丁,故障修复和性能提升问题。如果你的操作系统始终不升级,不管你是当初是如何精心选择一个强劲无比的Linux发行版本,终将被时间打败成一个满是漏洞、无法适应新应用程序的难维护的遗留系统。

运维线上海量服务器,系统管理员是很难去一一升级操作系统,这时需要采用自动化工具来完成。CentOS 6提供了 yum-cron 定时自动升级是一种解决方法(但是仍然需要精心涉及升级流程,避免自动升级导致的故障),早期的CentOS 5使用的工具名字是 yumupdatesd

在激活自动升级之前,你需要确认系统中哪些软件包是不能自动升级的 - 例如你的应用依赖特定版本的软件包或库文件 - 将这些软件包排除出自动升级范围。你也可以设置自动升级工具每次email给你需要升级的软件包而不是直接自动升级掉软件包。( Automatic package updates in CentOS 6 )

安装 yum-cron

使用以下命令安装

yum install yum-cron -y

在 CentOS 7 上安装完成后,使用 rpm -ql yum-cron 可以看到安装了cron设置(配置文件和CentOS6不同),init脚本和配置文件

/etc/cron.daily/0yum-daily.cron
/etc/cron.hourly/0yum-hourly.cron
/etc/yum/yum-cron-hourly.conf
/etc/yum/yum-cron.conf
/usr/lib/systemd/system/yum-cron.service
/usr/sbin/yum-cron
/usr/share/doc/yum-cron-3.4.3
/usr/share/doc/yum-cron-3.4.3/COPYING
/usr/share/man/man8/yum-cron.8

默认配置是立即下载所有可用更新并安装更新,报告将发送给系统的root用户。要修改这些设置,则修改 /etc/sysconfig/yum-cron ( Automatic Updates in RHEL 6 and CentOS 6 )

使用systemctl list-unit-files检查服务(CentOS 7中systemctl取代了chkconfig)

systemctl list-unit-files

输出内容包括

yum-cron.service                            enabled

默认配置文件是 /etc/yum/yum-cron.conf 可以看到默认配置项(在CentOS 6是配置文件/etc/sysconfig/yum-cron),和CentOS 6有所区别的是,CentOS 7开头提供不同的yum upgrade 选项,可以只更新安全补丁以及默认全更新。

例如只更新安全补丁,则设置 update_cmd = security

可以配置 emit_via 设置发送消息到标准输出或者发送邮件

默认的配置中,定时下载所有软件更新包,但不apply,随机时间 360 s

验证服务

检查服务是否启动

systemctl status yum-cron.service

如果没有启动,使用以下命令启动

systemctl start yum-cron.service

参考

Last updated