温馨提示×

Ubuntu如何实现系统自动更新

小樊
31
2025-12-20 06:28:09
栏目: 智能运维

Ubuntu 自动更新的实现与最佳实践

一 核心机制与组件

  • 使用 unattended-upgrades 自动安装更新,默认仅处理 安全更新,可按需扩展到所有更新。
  • APT 周期任务systemd timer 驱动:常见定时器为 apt-daily.timer/apt-daily-upgrade.timer,每天触发 apt-daily.service/apt-daily-upgrade.service,调用 /usr/lib/apt/apt.systemd.daily 执行“检查更新/下载/安装/清理”。
  • 关键配置文件:
    • /etc/apt/apt.conf.d/20auto-upgrades:控制是否每日检查、是否自动升级、清理周期等。
    • /etc/apt/apt.conf.d/50unattended-upgrades:定义允许自动升级的软件源、黑名单、是否自动重启、邮件通知等。

二 快速启用安全自动更新

  • 安装组件(如未安装):sudo apt update && sudo apt install unattended-upgrades
  • 交互启用:sudo dpkg-reconfigure --priority=low unattended-upgrades(选择 Yes)
  • 启用周期任务与默认策略:
    • 编辑 /etc/apt/apt.conf.d/20auto-upgrades,确保包含:
      • APT::Periodic::Update-Package-Lists “1
      • APT::Periodic::Download-Upgradeable-Packages “1
      • APT::Periodic::AutocleanInterval “7
      • APT::Periodic::Unattended-Upgrade “1
  • 桌面环境可选:打开“软件和更新”→“更新”,开启“自动检查更新”“安装安全更新”。

三 进阶配置与常用选项

  • 仅自动安装安全更新(默认且推荐):编辑 /etc/apt/apt.conf.d/50unattended-upgrades
    • 保持或添加安全源:
      • Unattended-Upgrade::Allowed-Origins {
        • “${distro_id}:${distro_codename}-security”;
        • // 如需扩展可添加:“${distro_id}:${distro_codename}-updates”;
        • }
  • 自动重启(内核/关键组件更新后):
    • Unattended-Upgrade::Automatic-Reboot “true
    • Unattended-Upgrade::Automatic-Reboot-Time “02:00
  • 自动清理与依赖管理:
    • Unattended-Upgrade::Remove-Unused-Dependencies “true
    • Unattended-Upgrade::Remove-Unused-Kernel-Packages “true
  • 邮件通知(需本地 MTA 或外部 SMTP 配置):
    • Unattended-Upgrade::Mail “root” 或 “admin@example.com”
    • Unattended-Upgrade::MailOnlyOnError “true
  • 包黑名单(不自动升级指定包):
    • Unattended-Upgrade::Package-Blacklist { “vim”; “libc6”; }

四 验证、定时与故障排查

  • 验证配置与试运行:
    • 模拟运行:sudo unattended-upgrades --dry-run
    • 立即执行:sudo unattended-upgrades
  • 查看日志与 APT 历史:
    • 无人值守日志:tail /var/log/unattended-upgrades/unattended-upgrades.log
    • APT 日志:/var/log/apt/{history.log,term.log}
  • 定时任务与执行时间:
    • 查看状态:systemctl status apt-daily.timer apt-daily-upgrade.timer
    • 默认常见触发时间:06:0018:00(可按需 mask/编辑 timer 调整)
  • 临时关闭自动更新:
    • 方式一(推荐):将 20auto-upgrades 中 APT::Periodic::Unattended-Upgrade 设为 “0
    • 方式二(彻底停用):systemctl disable --now apt-daily.timer apt-daily-upgrade.timer

五 桌面端图形界面设置

  • 打开“软件和更新”→“更新”:
    • 勾选“自动检查更新”,频率可选 每天/每周
    • 勾选“安装安全更新
    • 按需勾选“有新版本时通知我”(仅通知,不自动升级)
  • 图形界面修改会同步到 /etc/apt/apt.conf.d/10periodic20auto-upgrades

0