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:00 与 18: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/10periodic 与 20auto-upgrades。