CentOS 7 默认不启用自动更新,需手动安装并配置 yum-cron 服务;关键配置包括 update_cmd = security、download_updates = yes、apply_updates = yes,并确保 base/updates 仓库启用且 EPEL 禁用,同时注意 CentOS 7 官方源已于2024年6月30日停更。

CentOS 7 默认不启用自动更新,必须手动安装并配置 yum-cron 服务才能生效;直接运行 yum update 或依赖 cron 脚本裸调用是不可靠的,容易跳过安全判断、忽略仓库状态、无法回滚。
安装并启动 yum-cron 服务
最小化安装的 CentOS 7 通常未预装 yum-cron,需显式安装:
yum install yum-cron -y-
systemctl enable --now yum-cron(同时启用开机自启并立即运行) - 确认状态:
systemctl status yum-cron应显示active (running),注意不是active (exited)—— 后者说明服务未真正守护运行,只是执行了一次就退出
/etc/yum/yum-cron.conf 关键参数设置
该文件控制实际行为,仅修改以下几项即可满足生产环境安全更新需求:
-
update_cmd = security:强制只拉取标记为security的更新,等效于手动执行yum --security update;设为default会全量升级,风险极高 -
download_updates = yes:提前下载 RPM 包,避免安装时网络中断或超时失败 -
apply_updates = yes:自动安装(设为no仅检查+通知,适合需要人工审核的场景) -
update_messages = yes:启用本地日志(/var/log/yum.log)和邮件通知(需系统已配置可用的 MTA,如sendmail或postfix)
不要改动 random_sleep 或 update_interval —— yum-cron 默认每天检查一次,由 /etc/cron.daily/0yum-daily.cron 触发,硬编码在脚本里,改配置文件无效。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
验证安全更新源是否就绪
即使配置了 update_cmd = security,若系统没识别到安全元数据,仍不会触发任何更新:
- 先装插件:
yum install yum-plugin-security -y - 检查可用安全更新:
yum updateinfo list security all—— 若返回空,说明当前启用的仓库未提供安全元数据 - 确认官方仓库启用:
yum repolist enabled | grep -E "(base|updates)",确保输出中包含base和updates,且enabled=1 - 禁用干扰源:
yum-config-manager --disable epel(EPEL 默认不提供安全标签,会污染yum updateinfo结果)
更新后必须做的三件事
自动更新不是“设完就不管”,尤其在 CentOS 7 已停止维护(2024年6月30日)的背景下,每一轮更新都更需谨慎:
- 检查服务状态:
systemctl list-units --state=failed,重点关注sshd、network、firewalld等基础服务是否异常 - 查变更记录:
yum history list | head -5和rpm -qa --last | head -10,确认哪些包被更新、时间戳是否合理 - 保留回滚能力:
yum history undo [ID]可撤回某次事务,但前提是没执行过yum clean all清掉缓存;建议在更新前手动打 LVM 快照或虚拟机快照
真正麻烦的不是配置本身,而是 CentOS 7 官方源已停更 —— 即使 yum-cron 正常跑,它也拉不到新补丁。你得自己判断是否迁移到 CentOS Stream、AlmaLinux 或 Rocky Linux,否则所谓“自动更新”只是在原地循环。

















