有没有通用的 cron 自动更新方法?

有没有通用的 cron 自动更新方法?

我每天运行 Ubuntu 和 Fedora,并且通常几乎每天运行一次包管理器来检查更新。

当我获得内核更新时,我通常会重新启动,以便在新内核上运行,并且可以查看是否存在任何故障(几乎总是好的)。

如果我添加

apt-get update && apt-get -y upgrade

或者

dnf check-update && dnf upgrade

我的 root crontab 有什么程序错误吗?

如果我设置 crontab 在凌晨 4 点执行此操作并且它安装了新内核,然后我不重新启动并且它会自动安装第二个新内核,该怎么办?如果我一个月没有重新启动我的 Ubuntu 机器,并且在此期间对同一软件进行了 3 个内核更新和几个其他补丁,该怎么办?

这样可以自动更新吗?我知道 Ubuntu 有一个“无人值守升级”实用程序,但我宁愿了解其他系统管理员的工作,并采用更“实际”的方法来管理我的电脑。

答案1

通常,具有混合安装基础的系统管理员会使用跨平台配置管理/编排系统(例如 Puppet、Chef 或 Ansible)来管理更新。

如果您愿意,您还可以较小规模地设置其中一个工具。

或者,在 Fedora * 上,您可以使用DNF 自动- 看有关配置此功能的 Fedora 页面。这比简单的 cron 脚本更好,因为它具有更好的错误处理和更多的输出选项。

对于 Ubuntu,社区 wiki 上有相关说明自动更新,但我还没有使用过它们,所以除了提供指针之外我无法发表更多评论。

* 披露:我在 Fedora 上工作

答案2

我认为无人值守升级工具就是这样做的方法。

它只是一个 python 脚本,里面有几个无人值守的 dpkg 选项,您可以利用配置文件 /etc/apt/apt.conf.d/50unattended-upgrades 中有关重新启动的选项:

// 自动重启未经确认if // 升级后找到文件 /var/run/reboot-required Unattended-Upgrade::Automatic-Reboot "false";

// 当 Unattended-Upgrade::Automatic-Reboot "false" 时,即使当前有用户登录也会自动重新启动; //无人值守升级::自动重启-WithUsers "true";

// 如果启用并需要自动重启,则在特定时间重启,而不是立即重启 // 默认:“now” //Unattended-Upgrade::Automatic-Reboot-Time "02:00";

还有一些其他选项可以以更具体的方式配置行为(仅安全更新、使用额外的存储库等)。

https://wiki.debian.org/UnattendedUpgrades

然后您可以使用两种方式安排它:

  • 只需将无人值守升级放入 root 的 crontab 中即可。
  • 使用配置文件来执行此操作。

更多信息 :https://wiki.debian.org/UnattendedUpgrades

相关内容