You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为集群服务器按不同工作日调度无人值守升级(unattended-upgrade)

如何为集群服务器按不同工作日调度无人值守升级(unattended-upgrade)

我明白你的顾虑——集群里同时升级多个节点确实风险很高,得错开时间。其实你不用自己造轮子,apt自带的apt-daily-upgrade.timer就是负责触发无人值守升级的核心定时器,你之前看到的unattended-upgrades.service只是关机时等待升级完成的辅助服务,不是定时执行的那个,这应该是你之前困惑的点。

下面是具体的配置步骤,每个节点按需求单独设置即可:

1. 复制并修改定时器配置文件

系统默认的apt-daily-upgrade.timer在/lib/systemd/system/下,直接修改会被系统更新覆盖,所以先把它复制到/etc/systemd/system/目录下自定义:

cp /lib/systemd/system/apt-daily-upgrade.timer /etc/systemd/system/

然后编辑这个复制后的文件,找到OnCalendar字段(默认是每天随机时间段触发),改成对应工作日的固定时间:

  • 周一升级的节点:将OnCalendar改为 OnCalendar=Mon *-*-* 06:00:00(时间可以根据业务低谷调整,比如凌晨2点)
  • 周三升级的节点:改为 OnCalendar=Wed *-*-* 06:00:00
  • 周五升级的节点:改为 OnCalendar=Fri *-*-* 06:00:00

如果需要取消随机延迟(默认有RandomizedDelaySec=1h,会在设定时间前后1小时随机触发),可以添加或修改这一行:

RandomizedDelaySec=0

2. 生效配置并验证

修改完配置后,重新加载systemd并重启定时器:

systemctl daemon-reload
systemctl restart apt-daily-upgrade.timer

用以下命令确认定时器的下次执行时间是否符合预期:

systemctl list-timers apt-daily-upgrade.timer

3. 确认无人值守升级的核心配置

最后检查unattended-upgrades的主配置文件/etc/apt/apt.conf.d/50unattended-upgrades,确保关键选项正确:

  • Unattended-Upgrade::Allowed-Origins:确认包含你需要的升级源(比如Ubuntu的安全更新源)
  • Unattended-Upgrade::Automatic-Reboot:如果升级后需要自动重启,设置为true,并可通过Unattended-Upgrade::Automatic-Reboot-Time指定重启时间(如"03:00")
  • Unattended-Upgrade::Remove-Unused-Kernel-Packages:建议设为true,自动清理旧内核释放磁盘空间

这样每个节点就会在你指定的工作日执行无人值守升级,完美错开集群节点的升级时间,避免同时下线的风险。

备注:内容来源于stack exchange,提问作者azzid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:47:57