我们使用 apt 下载并安装生产服务器上的安全更新,大多数情况下,这种方法都行之有效。但是,今天早上,我们的服务器下载了一个更新,安装了更新,然后重新启动了正在更新的服务之一。此服务在重新启动时需要手动输入 - 而 apt 无法提供上述输入。这实际上导致我们的服务器短暂瘫痪(仅几分钟,但仍然瘫痪)。
我想知道 - 有没有办法让 apt 下载更新,但通过电子邮件通知有更新而不是简单地安装和重新启动服务?
如果我们可以针对每个服务执行此操作,那就太好了 - 但是安全更新量并不大(查看日志),所以这不是什么大问题。
答案1
安装包unattended-upgrades
:
sudo apt-get install unattended-upgrades
这将创建文件/etc/apt/apt.conf.d/50unattended-upgrades
您可以编辑此文件。以//是评论。
您可以注释掉一些行,特别是:
您可以列出不更新的软件包:
// List of packages to not update Unattended-Upgrade::Package-Blacklist { "my-blacklisted-package"; };
有更新时您可以发送电子邮件:
Unattended-Upgrade::Mail "root@localhost";
PS 如果不安装更新,我认为无人值守升级不会下载更新。您可以通过编辑来做到这一点/etc/apt/apt.conf.d/10periodic
。
您可以阅读 apt.conf 示例文件(请勿使用整个文件,仅可使用其中的一部分):/usr/share/doc/apt/examples/configure-index.gz
Update-Package-Lists "0"; // - Do "apt-get update" automatically every n-days (0=disable) // Download-Upgradeable-Packages "0"; // - Do "apt-get upgrade --download-only" every n-days (0=disable) // Unattended-Upgrade "0"; // - Run the "unattended-upgrade" security upgrade script // every n-days (0=disabled) // Requires the package "unattended-upgrades" and will write // a log in /var/log/unattended-upgrades //
PPS 您必须Unattended-Upgrade "1";
在 /etc/apt/apt.conf.d/10periodic 中进行设置才能启用无人值守升级。