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

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 -e0 */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-upgrades 里 Unattended-Upgrade 就被设为 "7"。它只影响通知行为,不改变自动安装逻辑。
真正对“是否自动安装”起决定性作用的,是 50unattended-upgrades 文件里的 Unattended-Upgrade::Allowed-Origins 以及 20auto-upgrades 里 Unattended-Upgrade 的开关值。这两者相互配合,缺一不可。
容易踩的坑:
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 清理。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9