商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Ubuntu如何设置具体的系统更新频率

Ubuntu如何设置具体的系统更新频率

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

Ubuntu自动更新频率的控制文件为/etc/apt/apt.conf.d/20auto-upgrades,其中的APT::Periodic::Update-Package-Lists和APT::Periodic::Unattended-Upgrade这两个参数(单位:天)分别决定了检查与安装的间隔。这里要特别注意,"0"代表忽略该任务,而非禁用,并且需要配合服务重启才能生效。

Ubuntu如何设置具体的系统更新频率

修改 20auto-upgrades 文件控制检查与安装频率

Ubuntu 的自动更新频率不是靠图形界面里的“每天/每周”下拉菜单真正生效的,而是由 /etc/apt/apt.conf.d/20auto-upgrades 这个文件决定。图形界面只是修改它的一个前端,但经常不同步或被忽略。

该文件里有两行关键配置:

  • APT::Periodic::Update-Package-Lists "1"; —— 控制多久执行一次 apt update(刷新软件源列表),数字单位是天
  • APT::Periodic::Unattended-Upgrade "1"; —— 控制多久执行一次自动安装(仅限已配置为允许的包类型),同样单位是天

注意:"1" 表示“每天”,"7" 表示“每7天”,"0" 并不表示“禁用”,而是让 APT 忽略该任务(实际效果等同于关闭)。如果想改成每周一凌晨检查并安装,只改数值不够,还需配合 cron 或服务重启逻辑。

常见错误:把 20auto-upgrades 里两项都设成 "0",却没停掉 unattended-upgrades 服务,结果系统仍会在某些条件下触发更新(比如手动运行 apt update 后,服务可能顺带执行一次安装)。

unattended-upgrades 服务本身不支持“按小时”粒度调度

很多人想设成“每6小时检查一次”,但 unattended-upgrades 的底层机制依赖 APT 的 Periodic 配置,而该配置最小单位就是“天”。强行设 "0.25" 会直接导致语法错误,服务启动失败。

如果你真需要更细粒度(例如每4小时检查安全更新),必须绕过 unattended-upgrades,改用 cron 手动调用:

  • 编辑用户 crontab:crontab -e
  • 添加一行:0 */4 * * * /usr/bin/apt update && /usr/bin/unattended-upgrade -d
  • 注意:-d 是调试模式,生产环境建议去掉,但首次测试务必加上,观察日志是否报错

这种写法绕过了 APT 的 Periodic 限制,但也失去了 unattended-upgrades 的黑名单、白名单、Origin 过滤等安全控制能力——所有匹配规则需在 /etc/apt/apt.conf.d/50unattended-upgrades 中额外校验,否则可能意外升级不该动的包(如内核或数据库服务)。

图形界面设置和命令行配置经常不一致

“软件和更新”GUI 里选了“每周显示其他更新”,不代表 20auto-upgradesUnattended-Upgrade 就被设为 "7"。它只影响通知行为,不改变自动安装逻辑。

真正对“是否自动安装”起决定性作用的,是 50unattended-upgrades 文件里的 Unattended-Upgrade::Allowed-Origins 以及 20auto-upgradesUnattended-Upgrade 的开关值。这两者相互配合,缺一不可。

容易踩的坑:

  • GUI 改完没点“关闭”或没输密码授权 → 配置根本没写入文件
  • 改了 20auto-upgrades 没重启服务 → systemctl restart unattended-upgrades 必须执行
  • 误删 10periodic 文件 → 系统可能完全停止检查更新,连安全补丁都收不到

服务器和桌面版对“频率”的理解完全不同

桌面用户关心的是“弹窗频率”和“下载时机”,而服务器管理员真正要控的是“安装窗口”和“重启策略”。20auto-upgrades 里没有重启控制项,它只管安装;重启由 50unattended-upgrades 中的 Unattended-Upgrade::Automatic-Reboot 决定,默认是 false

所以即使你把频率设成每天,只要没显式启用自动重启,系统就不会自己 reboot——这点常被忽略,导致关键内核更新一直卡在“已安装未生效”状态。

另外,APT::Periodic::AutocleanInterval(清理旧包缓存)也受同一套周期控制,设太小会导致频繁 I/O,设太大则磁盘悄悄涨满。建议桌面设 "7"服务器"1" 并配 logrotate 清理。

本文转载于:https://www.php.cn/faq/3013513.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注