了解 uname -a 的输出(内核版本和最新补丁)

了解 uname -a 的输出(内核版本和最新补丁)

我正在尝试查看我们的服务器是否都已修补,但这两个 RHEL 服务器上的修补符号让我感到困惑:

hostA$ uname -a
Linux hostA 3.10.0-1062.4.1.el7.x86_64 #1 SMP Wed Sep 25 09:42:57 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
hostB$ uname -a
Linux hostB 3.10.0-1127.el7.x86_64 #1 SMP Tue Feb 18 16:39:12 EST 2020 x86_64 x86_64 x86_64 GNU/Linux

那么,它们都已修补至 3.10.0 版本,对吗?连字符后面的数字有什么意义,使这两个服务器有所不同?

另外,时间戳是什么?这是供应商发布补丁的日期/时间吗?

答案1

Linux 3.10.0 与 RHEL 大量修补的 3.10.0-1127 有很大不同。阅读源代码中的 kernel.spec,并查看大量的更改日志。

1127 部分是内核 rpm 的发布“编号”。特定于 EL(或进行构建的任何人),而不是上游 kernel.org。鉴于大多数更新修复安全或功能缺陷,最后一位数字很重要。

时间戳是内核编译的时间。这不是发布日期。测试在发布前进行。并非所有测试内核都会发布。


使用 uname 检查内核不是 Linux 补丁管理。Linux 上的大多数软件都不是内核,从 libc 一直到应用程序。需要一些其他方法来报告和应用软件包。对于 RHEL,这意味着基于 rpm 和 yum 的工具。

答案2

大多数软件包管理器都有日志。对于 RHEL/CentOS/var/log/yum.log和 Debian/Ubuntu:/var/log/apt/history.log日志还包含所有软件包管理器更改(安装/更新/删除)的时间戳。

大多数现代发行版都可以配置为自动更新所有软件包。您可以指定是否只需要安全更新或所有更新。

还有一些集中式工具可以通过 Web 界面管理所有这些更新。

Linux 世界中的修补并不像您所说的那样。您有内核更新和软件包更新。

可以对内核进行实时修补,但我认为您现在不必担心这一点。实时修补意味着无需重新启动即可修复内核中的错误。

相关内容