![设置软件更新的计划时间](https://linux22.com/image/921261/%E8%AE%BE%E7%BD%AE%E8%BD%AF%E4%BB%B6%E6%9B%B4%E6%96%B0%E7%9A%84%E8%AE%A1%E5%88%92%E6%97%B6%E9%97%B4.png)
我住在偏远地区,我的互联网是基于卫星的。数据价格昂贵且有限,但夜间数据不计费,而且数据传输速度更快。我如何安排软件更新程序在夜间执行更新?我看到过许多与我类似的问题,但没有答案。是否有一个简单到中等技术水平的脚本可以编写?
答案1
编辑 apt 的 systemd 计时器
有三个设置需要更改:
/lib/systemd/system/apt-daily.timer
这将提供每日 apt 更新,刷新软件包数据库。更改此部分:
[Timer]
OnCalendar=*-*-* 6,18:00 // Try *-*-* 02:17 for nightly at 0217 (2:17 am)
RandomizedDelaySec=12h // Comment out this line (prepend with a '#') - you don't want random delay
Persistent=true // Keep this line
/lib/systemd/system/apt-daily-upgrade.timer
这提供您每日的无人值守升级,安装安全升级。前一个作业必须先运行 - 计算升级需要读取包数据库。更改此部分:
[Timer]
OnCalendar=*-*-* 06:00 // Try *-*-* 03:17 for nightly at 0317 (3:17 am)
RandomizedDelaySec=60m // Comment out this line (prepend with a '#') - you don't want random delay
Persistent=true // Keep this line
/etc/cron.daily/apt-compat
此作业为 apt 增加了额外的随机性。目的是通过随机地跨时间分配作业来避免镜像过载。通过将其他 apt 作业设置为不寻常的时间(例如整点后 17 分钟),您实现了此目标。更改此部分:
# delay the job execution by a random amount of time
random_sleep // Comment out this line by adding a '#' in front.