我有两台运行“vanilla” 20.04.1 LTS 的服务器。唯一的配置更改与定义挂载点、NFS 共享和 Samba 共享有关。每台机器都有一个每日手动调用的备份批处理作业,之后,如果没有 NFS 或 Samba 连接,则关闭。
我每天早上都以 root 身份登录(省去讲座!)并获取系统信息以及一些促销和链接。两台机器上显示的更新计数始终为零。但是,如果我每周手动调用一次更新,就会发生更新,因此显示的数字不应该为零。
我不想要自动更新,因为我不想在 LAN 上备份作业期间随意重启。无论如何,我不喜欢由外部控制自动发生任何事情。
因此,我想问一下如何在启动后登录时获取正确数量和类型(安全与否)的更新。
答案1
如何编辑现有的 systemd 计时器以apt update
在您选择的时间运行:
编辑/lib/systemd/system/apt-daily.timer
。只需更改以下两行:
[Timer]
OnCalendar=*-*-* 6,18:00 <---- Change this to the time(s) that you want
RandomizedDelaySec=12h <---- Comment out this line
Persistent=true
编辑后,重新加载计时器:
$ sudo systemctl daemon-reload
给未来读者的提示:除非您确实需要在特定时间运行 apt,否则最佳做法是保留随机化,以避免在常见时间对 Ubuntu 服务器造成负载过大(这很不礼貌)。有思想的社区成员可以使用该RandomizedDelaySec
设置配置一个窗口来分散负载并避免负载过大。
如何禁用无人值守升级:
编辑/etc/apt/apt.conf.d/10periodic
。
APT::Periodic::Update-Package-Lists "1"; <--- apt update. leave it "1"
APT::Periodic::Download-Upgradeable-Packages "1"; <--- apt upgrade. Change to "0"
APT::Periodic::AutocleanInterval "1"; <--- Unattended Upgrade feature. Change to "0"
给未来读者的提示:不建议大多数用户禁用无人值守升级。UU 是大多数用户接收安全补丁的方式。Ubuntu 开发人员希望用户运行 UU,不会在没有 UU 的情况下测试系统,并且可能会拒绝在运行 UU 的情况下无法复制的错误。禁用 UU 就像独自徒步进入荒野。之所以提出这种情况,是因为 OP 愿意承担责任。
如何辨别安全升级和非安全升级:对于大多数用户来说,这只是出于好奇。大多数用户应该通过无人值守升级获得每日安全升级,而升级次数并不是特别有用的信息。原帖作者专门询问了这些信息。
总结可用升级的登录消息通常不能被信任为准确 - 该消息由 pam_login 生成,并且基于最近的 apt-update...在本例中可能是几天前。始终在线的系统通常每天更新 apt 两次,因此它们的差异通常很小。
这里有一个相当简单的方法来列出可用于升级的 -security 包。您可以通过编辑第一个命令以同样的方式获取其他存储库:
提醒:apt update
在此之前请先运行一次新鲜操作以确保您拥有准确的列表。
$ grep security /etc/apt/sources.list > /tmp/security.list
$ apt list --upgradeable -oDir::Etc::Sourcelist=/tmp/security.list