如何在 Ubuntu 24.04、22.04 或 20.04 上配置无人值守升级

Ubuntu 是最流行的基于 Linux 的操作系统之一,广泛用于服务器、台式机和嵌入式设备。它提供了大量的软件包和工具库,用户可以安装和配置以满足他们的需求。但是,使用许多软件包和更新来保持系统最新和安全可能是一项挑战。这就是无人值守升级包的作用所在。在本文中,我们将解释无人值守升级包是什么、它的好处和功能,并指导您使用命令行终端在 Ubuntu 24.04、22.04 或 20.04 LTS 版本上设置和配置无人值守升级。

什么是无人值守升级包?

无人值守升级是一个可自动在 Ubuntu 系统上安装安全和其他更新的软件包。它在后台静默运行,并定期检查新更新,无需用户干预即可自动下载和安装。无人值守升级软件包是一个必不可少的工具,它通过最新的更新和补丁来确保系统的安全性和稳定性。

无人值守升级设置的优点和特点:

以下是 Ubuntu 上无人值守升级包的一些优点和功能:

  • 自动更新:无人值守升级包可自动下载和安装更新,节省用户的时间和精力。
  • 提高安全性:该软件包可确保系统始终保持最新的安全更新和补丁,从而降低恶意软件攻击和系统漏洞的风险。
  • 增强的稳定性:无人值守升级包通过保持系统更新来确保系统的稳定性和可靠性。
  • 可自定义的设置:用户可以根据自己的需要自定义包设置,例如自动安装哪些更新、忽略哪些更新以及何时安装它们。
  • 通知系统:该软件包向用户发送有关已安装更新的通知,提供对系统更新的透明度和控制。

更新 Ubuntu

在安装和设置无人值守升级包之前,您应该更新您的 Ubuntu 系统以避免冲突。要更新您的 Ubuntu 系统,请打开终端并输入以下命令:

sudo apt update && sudo apt upgrade

此命令将更新所有已安装的软件包及其依赖项至最新版本。根据系统可用的更新数量,可能需要一段时间。

安装无人值守升级包

要安装无人值守升级包,请打开终端并输入以下命令:

sudo apt install unattended-upgrades

此命令将在您的 Ubuntu 系统上安装该软件包及其所有依赖项。默认情况下应安装该软件包。但是,如果您已删除它,请使用上述命令重新安装它。

如果您希望 Ubuntu 系统在应用需要系统自动重启的升级后重新启动,您还需要安装 apt-config-auto-update 软件包。使用以下命令进行安装:

sudo apt install apt-config-auto-update

还建议笔记本电脑用户安装 powermgmt-base 软件包以使用无人值守电池选项。要安装此软件包,请打开终端并输入以下命令:

sudo apt install powermgmt-base

安装软件包后,您必须对其进行配置以满足您的需求。例如,您可能希望自定义要自动安装哪些更新、忽略哪些更新以及何时安装它们。请注意,无人值守升级软件包需要 root 权限才能运行。因此,您必须使用 sudo 命令运行本指南中提到的所有命令。

还建议验证无人值守升级包是否正常工作。为此,打开终端并输入以下命令:

sudo unattended-upgrades --dry-run --debug

熟悉无人值守升级的 systemctl 命令非常重要,因为您可能需要在进行更改或重新启动后检查状态。要检查无人值守升级的状态,请使用以下命令:

systemctl status unattended-upgrades

以下 systemctl 命令将允许您启动、停止、在启动时启用、在启动时禁用或重新启动无人值守升级服务:

启动无人值守服务:

sudo systemctl start unattended-upgrades

停止无人值守的服务:

sudo systemctl stop unattended-upgrades

在启动时启用无人值守服务:

sudo systemctl enable unattended-upgrades

在启动时禁用无人值守服务:

sudo systemctl disable unattended-upgrades

重新启动无人值守服务:

sudo systemctl restart unattended-upgrades

配置无人值守升级

本节介绍如何使用终端命令在配置文件中配置无人值守升级包设置。需要注意的是,这些设置是可选的,可以根据您的要求进行个性化设置。每个设置都会详细说明,以帮助您了解其用途和功能。这将使您能够在 Ubuntu 系统上配置无人值守升级包时做出明智的决定。

在进入配置文件之前,首先,这里是无人值守升级包的所有 CLI 选项的摘要及其解释:

选项描述
-h、–帮助显示帮助消息并退出
-d,-调试启用调试消息
–apt-debug使 apt/libapt 打印详细的调试消息
-v、–详细启用信息消息
–dry-run模拟升级过程并下载但不安装
–仅下载仅下载升级;不要尝试安装它们
–最小升级步骤以最少的步骤升级软件包(并允许使用 SIGTERM 中断)——这是默认行为
–无最低升级步骤将所有软件包一起升级,而不是分成几个小包进行升级

在终端中运行 unattended-upgrade 命令时可以使用这些选项来控制自动升级过程的行为。例如,–dry-run 选项可以帮助测试升级过程,而无需对系统进行任何实际更改,而 –download-only 选项可用于下载升级而不安装它们。

–minimal-upgrade-steps 选项是无人值守升级的默认行为,而 –no-minimal-upgrade-steps 选项会同时升级所有软件包,而不是分成几个小包。在配置无人值守升级时了解这些选项对于确保行为符合您的偏好和要求非常重要。

编辑配置文件

要编辑配置文件,建议使用具有 root 权限的文本编辑器,例如 nano。要使用 nano 打开文件,请运行以下命令:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

这将在 nano 编辑器中打开配置文件。从这里,您可以修改上面列出的各种选项。请记住删除文件中的所有注释(以“//”或“#”开头的行)以激活选项。

文件编辑完成后,按“Ctrl+X”,然后按“Y”,再按“Enter”保存并退出。

允许来源

此选项指定应从中安装更新的源。默认情况下,仅允许使用安全和更新存储库。您可以通过取消注释此选项并添加所需的存储库来将其他存储库添加到列表中,如下例所示:

Unattended-Upgrade::Allowed-Origins {
      "${distro_id}:${distro_codename}";
      "${distro_id}:${distro_codename}-security";
      "${distro_id}:${distro_codename}-updates";
      "${distro_id}:${distro_codename}-proposed";
      "${distro_id}:${distro_codename}-backports";
};

软件包黑名单

此选项允许您指定应从自动更新中排除的软件包。要排除软件包,请取消注释此选项并添加所需的软件包,如下例所示:

Unattended-Upgrade::Package-Blacklist {
      "my-package";
      "my-other-package";
};

自动修复中断Dpkg

此选项确定系统是否应自动修复中断的“dpkg”安装。要启用自动修复,请将值设置为“true”,如下例所示:

Unattended-Upgrade::AutoFixInterruptedDpkg "true";

开发者发布“自动”

此选项指定是否自动升级到开发版本。默认情况下,此选项处于禁用状态。要启用自动升级到开发版本,请将值设置为“auto”,如下例所示:

Unattended-Upgrade::DevRelease "auto";

最小步骤“真”

此选项指定是否在升级期间执行最小步骤。默认情况下,此选项处于启用状态。要禁用最小步骤,请将值设置为“false”,如下例所示:

Unattended-Upgrade::MinimalSteps "false";

InstallOnShutdown “false”

此选项指定是否在关机时安装升级。默认情况下,此选项处于禁用状态。要启用关机时安装,请将值设置为“true”,如下例所示:

Unattended-Upgrade::InstallOnShutdown "true";

邮件

此选项指定应向其发送通知的电子邮件地址。默认情况下,不会发送通知。要指定电子邮件地址,请将其添加为字符串值,如下例所示:

Unattended-Upgrade::Mail "example@mail.com";

MailReport“更改时”

此选项指定何时发送电子邮件通知。默认情况下,仅在发生更改时才发送通知。要每次都发送通知,请将值设置为“on-start”,如下例所示:

Unattended-Upgrade::MailReport "on-start";

删除未使用的内核包

此选项指定是否在升级后删除未使用的内核包。默认情况下,此选项处于启用状态。要禁用未使用的内核包的删除,请将值设置为“false”,如下例所示:

Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";

删除新的未使用的依赖项

此设置控制在软件包升级后删除系统不再需要的新依赖项。此设置默认启用,任何不再需要的新依赖项都将自动从系统中删除。要启用此设置,请使用以下命令:

Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

如果您希望保留这些新的依赖项,可以通过将值更改为“false”来禁用此设置。但是,请注意,这可能会导致未使用的依赖项在您的系统中累积,从而占用宝贵的磁盘空间。

删除未使用的依赖项

此选项指定是否在升级后删除未使用的依赖项。默认情况下,此选项处于禁用状态。要启用未使用的依赖项的删除,请将值设置为“true”,如下例所示:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

自动重启

此选项指定是否在升级后自动重启系统。默认情况下,此选项处于禁用状态。要启用自动重启,请将值设置为“true”,如下例所示:

Unattended-Upgrade::Automatic-Reboot "true";

自动重启用户

此选项指定用户登录时是否自动重启系统。默认情况下,此选项处于启用状态。要禁用用户登录时的自动重启,请将值设置为“false”,如下例所示:

Unattended-Upgrade::Automatic-Reboot-WithUsers "false";

自动重启时间

此选项指定系统升级后自动重启的时间。默认情况下,此选项设置为“02:00”。要更改重启时间,请修改值,如下例所示:

Unattended-Upgrade::Automatic-Reboot-Time "03:00";

获取::http::Dl-限制

此选项指定包下载的最大下载速度(以每秒千字节为单位)。默认情况下,此选项处于禁用状态。要启用下载速度限制,请将值设置为所需的速度,如下例所示:

Acquire::http::Dl-Limit "100";

系统日志启用

此选项指定是否将升级事件记录到系统日志中。默认情况下,此选项处于启用状态。要禁用日志记录,请将值设置为“false”,如下例所示:

Unattended-Upgrade::SyslogEnable "false";

系统日志工具

此选项指定应将升级事件记录到的设备。默认情况下,事件将记录到“守护进程”设备。要将事件记录到其他设备,请修改该值,如以下示例所示:

Unattended-Upgrade::SyslogFacility "local7";

仅限交流电源

此选项指定是否仅在系统连接到交流电源时执行升级。默认情况下,此选项处于禁用状态。要仅在交流电源上启用升级,请将值设置为“true”,如下例所示:

Unattended-Upgrade::SyslogFacility "local7";

跳过计量连接更新

此选项指定当系统连接到计量连接时是否跳过更新。默认情况下,此选项处于启用状态。要通过计量连接下载更新,请将值设置为“false”,如下例所示:

Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";

详细

此选项指定是否输出详细升级信息。默认情况下,此选项处于禁用状态。要启用详细输出,请将值设置为“true”,如下例所示:

Unattended-Upgrade::Verbose "true";

调试

此选项指定是否在升级过程中输出调试信息。默认情况下,此选项处于禁用状态。要启用调试输出,请将值设置为“true”,如下例所示:

Unattended-Upgrade::Debug "true";

允许降级

此选项指定是否允许在升级期间降级软件包。默认情况下,此选项处于禁用状态。要允许降级,请将值设置为“true”,如下例所示:

Unattended-Upgrade::Allow-downgrade "true";

请记住,允许降级可能会很危险,并会导致系统不稳定或安全漏洞。建议您仅在必要时启用此选项,并仔细考虑所涉及的风险。

测试并应用更改

对配置文件进行任何更改后,务必运行以下命令以确保应用更改:

sudo unattended-upgrades --dry-run --debug

此命令将模拟升级运行并显示由于您对配置文件所做的更改而可能发生的任何错误或警告。如果一切正常,您可以运行以下命令来执行实际升级:

sudo unattended-upgrades

此命令将根据配置设置自动检查并安装可用的升级。

通过以上步骤,您应该更好地了解如何在 Ubuntu 系统上配置和修改 Unattended-Upgrades 包。

使用 Cron Job 安排自动升级

要在 Ubuntu 系统上安排自动无人值守升级,您可以使用 cron 作业。cron 作业是 Linux 中基于时间的任务调度程序,可让您在指定时间或间隔自动运行命令或脚本。

要为无人值守升级创建 cron 作业,请按照以下步骤操作:

通过运行以下命令打开 crontab 配置文件:

sudo crontab -e

这将在 nano 编辑器中打开 crontab 文件。将以下行添加到文件底部:

0 0 * * * /usr/bin/unattended-upgrade -d

此行指定 unattended-upgrade 命令应每天午夜 (0 0 * * *) 运行。按“Ctrl+X”,然后按“Y”,再按“Enter”保存并退出文件。

上述 cron 作业将在每天午夜运行无人值守升级命令,检查可用的升级,并根据配置设置自动安装它们。

您应该只在系统未使用时安排自动升级,因为升级可能需要重新启动或导致应用程序重新启动。

检查无人值守升级日志

默认情况下,Unattended-Upgrades 软件包会将所有升级活动记录到 syslog 工具中。日志位于 /var/log/syslog 文件和其他系统日志中。

要检查无人值守升级日志,可以使用以下命令:

sudo grep unattended-upgrades /var/log/syslog

此命令将在 syslog 文件中搜索包含“unattended-upgrades”关键字的条目并将其显示在屏幕上。您还可以使用以下命令显示 syslog 文件中的最后 50 个条目:

sudo tail -n 50 /var/log/syslog | grep unattended-upgrades

此命令将显示 syslog 文件中包含“unattended-upgrades”关键字的最后 50 条条目。

除了上述命令之外,您还可以使用各种 grep 选项根据特定条件过滤日志。例如,要按日期和时间过滤日志,您可以使用以下命令:

sudo grep "unattended-upgrades.*YYYY-MM-DD" /var/log/syslog

将“YYYY-MM-DD”替换为所需的年月日格式的日期。此命令将显示所有包含“unattended-upgrades”关键字且与指定日期匹配的日志条目。

您还可以使用以下命令按包名称过滤日志:

sudo grep "unattended-upgrades.*<package_name>" /var/log/syslog

代替 ” ”替换为要搜索的软件包名称。此命令将显示所有包含“unattended-upgrades”关键字并与指定软件包名称匹配的日志条目。

使用上述命令,您可以轻松检查和过滤 Ubuntu 系统上的无人值守升级日志,并排除升级过程中可能出现的任何问题。

结论

总之,在 Ubuntu 系统上设置和配置无人值守升级可以大大提高其安全性和稳定性。通过自动安装安全更新和补丁,您可以确保您的系统始终保持最新的安全修复,而无需手动检查更新并安装它们。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

《How to Configure Unattended Upgrades on Ubuntu 24.04, 22.04 or 20.04》有3条评论

  1. 你好,这一行有个拼写错误,enable 缺少了 L。谢谢指导!

    在启动时启用无人值守服务:
    sudo systemctl 启用无人值守升级

    回复

发表评论