老叫先生 發表於 2025-1-20 10:55:15

如何配置Ubuntu无人值守升级? 手动操作实现Ubuntu自动升级技巧

<p>Ubuntu 是广泛应用于服务器、桌面和嵌入式设备的 Linux 发行版之一,提供了丰富的软件包和工具库,用户可根据需求进行安装和配置。然而,由于更新和软件包众多,要保持系统最新和安全,则具有一定的挑战性,这时 Ubuntu 无人值守升级便可派上用场。</p>
<p>本文将为大家将介绍 Ubuntu 无人值守升级的作用、优点和功能,以及如何通过命令行「终端」进行配置。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202501/2025012010421669.jpg" /></p>
<h3>什么是 Ubuntu 无人值守升级</h3>
<ul><li>无人值守升级包是在 Ubuntu 系统上自动安装安全和其他更新的工具。它在后台静默运行,定期检查更新并自动下载和安装,无需用户干预。</li><li>无人值守升级通过确保系统与最新的更新和补丁保持同步,保证 Ubuntu 系统的安全性和稳定性,是一个非常重要的自动化工具。</li></ul>
<h3>Ubuntu 无人值守升级的特点和功能</h3>
<ul><li><strong>自动化更新:</strong>可以自动下载和安装更新,节省用户时间和精力。</li><li><strong>提高安全性:</strong>确保 Ubuntu 系统与最新的安全更新和补丁保持同步,降低恶意软件攻击和系统漏洞的风险。</li><li><strong>增强稳定性:</strong>无人值守升级通过保持系统最新,确保系统的稳定性和可靠性。</li><li><strong>自定义设置:</strong>用户可以根据自己的需要自定义设置,例如自动安装哪些更新、忽略哪些更新以及何时安装它们。</li><li><strong>邮件通知:</strong>可以向用户发送已安装更新的电子邮件通知,提供系统更新的透明度和增强控制。</li></ul>
<h4>步骤 1:更新 Ubuntu</h4>
<p>在安装和设置无人值守升级之前,建议先更新 Ubuntu 系统以避免冲突。要更新 Ubuntu 系统,请打开「终端」并运行以下命令:</p>
<div class="jb51code"><pre>sudo apt update &amp;&amp; sudo apt upgrade</pre></div>
<p>该命令会将所有已安装的软件包及其依赖关系更新到最新版本。根据系统可用的更新数量,可能需要一些时间。</p>
<h4>步骤2:安装 Ubuntu 无人值守升级包</h4>
<p>1、要安装无人值守升级包,请打开「终端」并运行以下命令:</p>
<div class="jb51code"><pre>sudo apt install unattended-upgrades</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202501/2025012010421670.jpg" /></p>
<p style="text-align:center">安装 Ubuntu 无人值守升级包</p>
<p>默认情况下,Ubuntu 无人值守升级包应该已经安装。但是,如果已删除该包,请使用上述命令重新安装。</p>
<p>2、安装或升级某些应用后可能需要重启系统,如果您希望在自动升级之后也自动重启 Ubuntu 系统,还需要安装<code>apt-config-auto-update</code>包。请使用以下命令进行安装:</p>
<div class="jb51code"><pre>sudo apt install apt-config-auto-update</pre></div>
<p>3、(可选)对于笔记本电脑用户,建议安装 powermgmt-base 软件包以应用适用于电池的无人值守选项。要安装此软件包,请打开「终端」并运行以下命令:</p>
<div class="jb51code"><pre>sudo apt install powermgmt-base</pre></div>
<p>安装完该软件包后,需要按需对其进行配置。例如,需要自定义自动安装哪些更新、忽略哪些更新以及何时安装它们。</p>
<blockquote><p>无人值守升级包需要管理员权限才能运行。因此,在运行本文中提到的所有命令时,都需要使用 sudo 命令。</p></blockquote>
<p>4、建议您验证无人值守升级包是否正常工作。要执行此操作,请打开「终端」并输入以下命令:</p>
<div class="jb51code"><pre>sudo unattended-upgrades --dry-run --debug</pre></div>
<p>熟悉 Ubuntu 无人值守升级的 <a href="https://www.jb51.net/LINUXjishu/957619.html" target="_blank">systemctl 命令</a>也非常重要,因为在进行配置更改或系统重启后,可能需要检查其状态。要检查无人值守升级的状态,请使用以下命令:</p>
<div class="jb51code"><pre>systemctl status unattended-upgrades</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202501/2025012010421771.jpg" /></p>
<p>查看 unattended-upgrades 服务状态</p>
<p>以下 systemctl 命令可以控制:启动、停止、开机启用、开机禁用或重新启动无人值守升级服务:</p>
<ul><li>启动无人值守升级服务:</li></ul>
<div class="jb51code"><pre>sudo systemctl start unattended-upgrades</pre></div>
<ul><li>停止无人值守升级服务:</li></ul>
<div class="jb51code"><pre>sudo systemctl stop unattended-upgrades</pre></div>
<ul><li>在系统启动时启用无人值守升级服务:</li></ul>
<div class="jb51code"><pre>sudo systemctl enabe unattended-upgrades</pre></div>
<ul><li>在系统启动时禁用无人值守升级服务:</li></ul>
<div class="jb51code"><pre>sudo systemctl disable unattended-upgrades</pre></div>
<ul><li>重启无人值守升级服务:</li></ul>
<div class="jb51code"><pre>sudo systemctl restart unattended-upgrades</pre></div>
<h4>步骤 3:配置 Ubuntu 无人值守升级</h4>
<p>下面我们将介绍,如何使用「终端」命令对无人值守升级进行配置。这些设置是可选的,可以根据您的需求进行个性化定制。</p>
<p>我们将详细解释每项配置的目的和功能,以帮助您了解在 Ubuntu 系统上配置无人值守升级的过程。这能够帮助您做出明智的决策。</p>
<p>在进入配置文件之前,先来看看无人值守升级包的所有 CLI 选项及其说明的摘要:</p>
<table><tbody><tr><th>选项</th><th>描述</th></tr><tr><td>-h, &ndash;help</td><td>显示帮助信息。</td></tr><tr><td>-d, &ndash;debug</td><td>启用调试消息。</td></tr><tr><td>&ndash;apt-debug</td><td>使用&nbsp;apt/libapt&nbsp;打印详细的调试消息。</td></tr><tr><td>-v, &ndash;verbose</td><td>输出详细信息。</td></tr><tr><td>&ndash;dry-run</td><td>模拟升级过程和下载但不安装。</td></tr><tr><td>&ndash;download-only</td><td>只下载升级包但不安装。</td></tr><tr><td>&ndash;minimal-upgrade-steps</td><td>以最少的步骤升级包。</td></tr><tr><td>&ndash;no-minimal-upgrade-steps</td><td>一起升级所有软件包,而不分成较小的集合。</td></tr></tbody></table>
<p>这些选项可以在「终端」中运行<code>unattended-upgrade</code>命令时使用,以控制自动升级过程的行为。例如:</p>
<ul><li><code>--dry-run</code>选项可以用于在不实际对系统进行任何更改的情况下测试升级过程。</li><li><code>--download-only</code>&nbsp;选项可用于下载升级包而不安装它们。</li><li>默认情况下,无人值守升级会使用&nbsp;<code>--minimal-upgrade-steps</code>&nbsp;选项,将软件包分批次升级。</li><li>如果您需要将所有软件包一起升级,可以使用<code>--no-minimal-upgrade-steps</code>选项。</li></ul>
<p>在配置无人值守升级时,了解这些选项非常重要,以确保其行为符合您的偏好和要求。</p>
<p><strong>编辑配置文件</strong></p>
<p>编辑配置文件时,要使用具有 root 权限的文本编辑器,如 nano 或 vi。要用 vi 打开配置文件,请运行以下命令:</p>
<div class="jb51code"><pre>sudo vi /etc/apt/apt.conf.d/50unattended-upgrades</pre></div>
<p>您可以修改配置文件列出的各种选项。要激活选项,请删除文件中的注释(以<code>//</code>或<code>#</code>开头的行)。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202501/2025012010421772.jpg" /></p>
<p style="text-align:center">编辑 unattended-upgrades 配置文件</p>
<p><strong>Allowed Origins 允许的来源</strong></p>
<p>该选项指定应从哪些来源安装更新。默认情况下,仅允许安装<code>security</code>「安全」和<code>updates</code>「更新」存储库。您可以取消注释此选项,并添加所需的其他存储库到列表中,如下所示:</p>
<div class="jb51code"><pre>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";
};</pre></div>
<p><strong>Package Blacklist 软件包黑名单</strong></p>
<p>该选项允许指定应从自动更新中排除的软件包。要排除软件包,请取消注释此选项,并按照下面的示例添加排除的软件包:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Package-Blacklist {
      "package-name-xx";
      "package-name-xxx";
};</pre></div>
<p><strong>AutoFixInterruptedDpkg</strong></p>
<p>此选项确定系统是否应自动修复中断的<code>dpkg</code>安装。若要启用自动修复,请按以下示例设置该值为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::AutoFixInterruptedDpkg "true";</pre></div>
<p><strong>DevRelease &ldquo;auto&rdquo;</strong></p>
<p>此选项指定是否自动升级到开发版本。默认情况下,该选项已禁用。若要启用自动升级到开发版本,请将该选项的值设置为<code>auto</code>,如下所示:</p>
<div class="jb51code"><pre>Unattended-Upgrade::DevRelease "auto";</pre></div>
<p><strong>MinimalSteps &ldquo;true&rdquo;</strong></p>
<p>此选项指定升级时是否执行最小步骤。默认情况下,此选项已启用。要禁用最小步骤,请按下面的示例设置值为<code>false</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::MinimalSteps "false";</pre></div>
<p><strong>InstallOnShutdown &ldquo;false&rdquo;</strong></p>
<p>此选项指定是否在关机时安装更新。默认情况下,此选项已禁用。要启用关机时安装更新,请按照以下示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::InstallOnShutdown "true";</pre></div>
<p><strong>Mail</strong></p>
<p>此选项用于指定发送电子邮件通知的地址。默认情况下,不发送通知。要指定通知电子邮件地址,请按以下示例添加一个字符串值:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Mail "example@mail.com";</pre></div>
<p><strong>MailReport &ldquo;on-change&rdquo;</strong></p>
<p>此选项用于指定何时发送电子邮件通知。默认情况下,仅在有更改时发送通知。要每次发送通知,请按照下面的示例将值设置为<code>on-start</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::MailReport "on-start";</pre></div>
<p><strong>Remove-Unused-Kernel-Packages</strong></p>
<p>此选项指定是否在升级后删除未使用的内核包。默认情况下,此选项已启用。不删除未使用的内核包,请按照以下示例将值设置为<code>false</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";</pre></div>
<p><strong>Remove-New-Unused-Dependencies</strong></p>
<p>该设置控制在包升级后删除 Ubuntu 系统不再需要的新依赖项。默认情况下,此设置已启用,任何不再需要的新依赖项都将自动从系统中删除。若要启用此设置,请使用以下配置:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Remove-New-Unused-Dependencies "true";</pre></div>
<p>如果要保留这些新依赖项,可以将值更改为<code>false</code>将该其禁用。但需要注意,这可能会导致未使用的依赖项在系统上积累,占用宝贵的磁盘空间。</p>
<p><strong>Remove-Unused-Dependencies</strong></p>
<p>此选项指定升级后是否删除未使用的依赖项。默认情况下,该选项已禁用。要启用删除未使用的依赖项,请按照以下示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Remove-Unused-Dependencies "true";</pre></div>
<p><strong>Automatic-Reboot</strong></p>
<p>此选项指定在升级后是否自动重启 Ubuntu 系统。默认情况下,此选项已禁用。要启用自动重启,请按照下面的示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Automatic-Reboot "true";</pre></div>
<p><strong>Automatic-Reboot-WithUsers</strong></p>
<p>此选项指定在有用户登录时是否自动重启系统。默认情况下,此选项已启用。若要禁用此选项,请按照以下示例将值设置为<code>false</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Automatic-Reboot-WithUsers "false";</pre></div>
<p><strong>Automatic-Reboot-Time</strong></p>
<p>此选项指定升级后系统自动重启的时间。默认设置为<code>02:00</code>。要更改重启时间,请照以下示例修改该值:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Automatic-Reboot-Time "03:00";</pre></div>
<p><strong>Acquire::http::Dl-Limit</strong></p>
<p>此选项指定软件包的最大下载速度,单位为每秒千字节。默认情况下,此选项已禁用。若要启用下载速度限制,请按照以下示例设置所限制的速度值:</p>
<div class="jb51code"><pre>Acquire::http::Dl-Limit "100";</pre></div>
<p><strong>SyslogEnable</strong></p>
<p>此选项指定是否将升级事件记录到系统日志中。默认情况下,此选项已启用。要禁用记录,请按照以下示例将值设置为<code>false</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::SyslogEnable "false";</pre></div>
<p><strong>SyslogFacility</strong></p>
<p>此选项用于指定升级事件应记录到哪个设施。默认情况下,事件会记录到<code>daemon</code>设施。若要将事件记录到其他设施,请按照以下示例修改值:</p>
<div class="jb51code"><pre>Unattended-Upgrade::SyslogFacility "local7";</pre></div>
<p><strong>OnlyOnACPower</strong></p>
<p>此选项指定是否只有在系统连接到交流电源时才执行升级。默认情况下,该选项被禁用。若要仅在使用交流电源时启用升级,请按照以下示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::OnlyOnACPower "true";</pre></div>
<p><strong>Skip-Updates-On-Metered-Connections</strong></p>
<p>该选项指定当系统连接到付费连接时是否跳过更新。默认情况下,该选项已启用。若要在付费连接时下载更新,请按照以下示例将值设置为<code>false</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";</pre></div>
<p><strong>Verbose</strong></p>
<p>此选项指定是否输出详细的升级信息。默认情况下,该选项已禁用。若要启用详细输出,请按以下示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Verbose "true";</pre></div>
<p><strong>Debug</strong></p>
<p>该选项指定是否在升级过程中输出调试信息。默认情况下,该选项已禁用。要启用调试输出,请按照以下示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Debug "true";</pre></div>
<p><strong>Allow-downgrade</strong></p>
<p>该选项指定是否允许在升级过程中降级软件包。默认情况下,该选项已禁用。要允许降级,请按照以下示例将值设置为<code>true</code>:</p>
<div class="jb51code"><pre>Unattended-Upgrade::Allow-downgrade "true";</pre></div>
<blockquote><p>允许降级可能会导致系统不稳定或存在安全漏洞。建议仅在必要时启用此选项,并仔细考虑所涉及的风险。</p></blockquote>
<p><strong>测试和应用更改</strong></p>
<p>在对配置文件进行任何更改后,务必运行以下命令以确保更改已生效:</p>
<div class="jb51code"><pre>sudo unattended-upgrades --dry-run --debug</pre></div>
<p>该命令会模拟升级运行,并显示配置文件导致的错误或警告。如果一切正常,就可以运行下面的命令来执行实际的升级:</p>
<div class="jb51code"><pre>sudo unattended-upgrades</pre></div>
<p>该命令将根据配置文件的设置自动检查并安装可用的升级包。</p>
<p>通过上面的介绍,您现在应该更好地了解了如何在 Ubuntu 系统上配置和修改 Unattended-Upgrades 无人值守升级包。</p>
<h4>步骤 4:使用 Cron Job 定期执行 Ubuntu 无人值守升级</h4>
<p>要在您的 Ubuntu 系统上安排自动无人值守升级,可以使用 Cron Job。Cron Job 是 Linux 中的基于时间的任务调度程序,允许您在指定的时间或间隔自动运行命令或脚本。</p>
<p>要为无人值守升级创建 Cron Job,请按照以下步骤:</p>
<p>1、在「终端」中运行以下命令打开 crontab 配置文件:</p>
<div class="jb51code"><pre>sudo crontab -e</pre></div>
<p>2、这将在 nano 或 vi 编辑器中打开 crontab 文件,将以下行添加到文件底部:</p>
<div class="jb51code"><pre>0 0 * * * /usr/bin/unattended-upgrade -d</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202501/2025012010421773.jpg" /></p>
<p style="text-align:center">使用 Cron Job 定期执行 Ubuntu 无人值守升级</p>
<p>这行命令指定了<code>unattended-upgrade</code>命令应在每天午夜运行(<code>0 0 * * *</code>)。</p>
<h4>步骤 5:查看 Ubuntu 无人值守升级日志</h4>
<p>Unattended-Upgrades 软件包默认将所有升级活动记录到系统日志。日志可以在<code>/var/log/syslog</code>文件和其他系统日志中找到。</p>
<p>要查看 Ubuntu 无人值守升级日志,请使用以下命令:</p>
<div class="jb51code"><pre>sudo grep unattended-upgrades /var/log/syslog</pre></div>
<p>该命令会在 syslog 文件中搜索包含 unattended-upgrades 关键字条目,并在屏幕上输出。您也可以使用以下命令显示 syslog 文件中的最后 50 个条目:</p>
<div class="jb51code"><pre>sudo tail -n 50 /var/log/syslog | grep unattended-upgrades</pre></div>
<p>除了上述命令之外,您还可以使用各种<code>grep</code>选项根据特定标准过滤日志。例如,要按日期和时间过滤日志,可以使用以下命令:</p>
<div class="jb51code"><pre>sudo grep "unattended-upgrades.*YYYY-MM-DD" /var/log/syslog</pre></div>
<p>将<code>YYYY-MM-DD</code>替换为所需的日期,格式为 <code>年-月-日</code>。该命令将显示包含 unattended-upgrades 关键词且与指定日期匹配的所有日志条目。</p>
<p>您也可以使用以下命令按软件包名称过滤日志:</p>
<div class="jb51code"><pre>sudo grep "unattended-upgrades.*&lt;package_name&gt;" /var/log/syslog</pre></div>
<p>将<code>&lt;package_name&gt;</code>替换为要搜索的软件包名称。此命令将显示所有包含 unattended-upgrades 关键词并匹配指定软件包名称的日志条目。</p>
<p>使用上述命令,您可以轻松检查和过滤 Ubuntu 系统中的 Unattended-Upgrades 日志,并解决升级过程中可能出现的任何问题。</p>
<p>在 Ubuntu 系统中设置和配置无人值守升级可以极大地提高系统的安全性和稳定性。它能够自动安装安全更新和补丁,确保系统随时具备最新的安全修复程序,无需手动检查更新并安装。</p>
頁: [1]
查看完整版本: 如何配置Ubuntu无人值守升级? 手动操作实现Ubuntu自动升级技巧