温馨提示×

CentOS Trigger更新步骤

小樊
38
2025-12-13 17:21:06
栏目: 智能运维

CentOS 更新步骤与自动化配置

一、准备与检查

  • 确认系统版本与分支:
    • 查看版本:cat /etc/redhat-release
    • 判断是否为滚动版本:cat /etc/centos-release(出现 Stream 即为 CentOS Stream)
  • 备份关键数据与配置(如数据库、应用配置、证书等),更新前建议在维护窗口进行。
  • 可选:执行 sudo yum check-update 仅查看可用更新,不实际安装。

二、手动触发更新

  • CentOS 7 及兼容版本(使用 YUM)
    • 刷新元数据并全量更新:sudo yum update --refresh
    • 仅安装安全更新:sudo yum update --security
    • 更新单个软件包:sudo yum update <package_name>
  • CentOS 8 / CentOS Stream 8(使用 DNF)
    • 全量更新:sudo dnf update
    • 仅更新内核:sudo dnf upgrade kernel
    • 更新单个软件包:sudo dnf update <package_name>
  • 更新完成后,如涉及内核或关键组件,建议重启:sudo reboot

三、设置自动更新

  • CentOS 7 / RHEL 7(使用 yum-cron)
    • 安装并启用服务:
      • sudo yum install -y yum-cron
      • sudo systemctl enable --now yum-cron
    • 配置策略(/etc/yum/yum-cron.conf):
      • 全部更新:update_cmd = default;仅安全更新:update_cmd = security
      • 启用自动安装:download_updates = yesapply_updates = yes
      • 邮件通知(可选):emit_via = email,并设置 email_fromemail_to
  • CentOS 8 / Stream 8(使用 dnf-automatic + systemd 定时器)
    • 安装并配置:
      • sudo dnf install -y dnf-automatic
      • 编辑 /etc/dnf/automatic.conf:
        • 全部更新:upgrade_type = default;仅安全更新:upgrade_type = security
        • 自动安装:apply_updates = yes(仅下载不安装则设为 no
        • 通知方式:emit_via = email 并配置发件人与收件人
    • 启用定时器(而非直接启用服务):
      • sudo systemctl enable --now dnf-automatic.timer
      • 查看定时器:systemctl list-timers *dnf-*
  • 图形化方式(可选,CentOS 8)
    • 通过 Cockpit 启用自动更新:登录 https://<服务器IP>:9090 → Software Updates → 开启自动更新,并选择“应用所有更新”或“仅安全更新”。

四、更新后的验证与回滚建议

  • 验证
    • 查看已安装版本与内核:rpm -q <package_name>uname -r
    • 查看更新日志:sudo journalctl -xe/var/log/dnf.log/var/log/yum.log
    • 如配置了邮件或 MOTD 通知,核对是否收到更新摘要
  • 回滚与风险控制
    • 优先在测试环境验证更新;关键业务建议分阶段滚动更新
    • 使用虚拟机或快照创建回滚点;对数据库等状态服务,先做好备份与停机窗口规划
    • 若更新后出现异常,优先回退最近变更或重启至旧内核(如可用)进行排查

五、常见问题与处理

  • 依赖冲突或安装失败
    • 先尝试:sudo dnf distro-sync(或 sudo yum distro-sync
    • 谨慎使用 --best--allowerasing 解决依赖,务必在变更前确认影响范围
  • 仅想“下载不安装”
    • 配置 apply_updates = no,或使用 dnf-automatic 的下载模式;定时任务仅负责下载与通知
  • 定时任务未生效
    • 对于 dnf-automatic,确认启用的是 timer 而非 service:systemctl list-timers *dnf-*
    • 对于 yum-cron,确认服务运行:systemctl status yum-cron
  • 邮件通知收不到
    • 检查 /etc/dnf/automatic.conf/etc/yum/yum-cron.confemit_via 与邮箱参数
    • 确保本机 Postfix 或外部 SMTP 中继已正确配置并可外发邮件

0