可能重复:
我如何知道正在运行的 Linux 版本?
在任何服务器上安装 Linux 的最佳方法是什么?例如,如果服务器是 RedHat 或 CentOS,我可以简单地执行以下操作:
cat /etc/redhat-release
CentOS release 6.3 (Final)
所有其他主要发行版都将其详细文件存储在哪里?谢谢。
答案1
那么,你正在考虑多少个版本?RHEL(和克隆版本)、Debian 和 Ubuntu。
理想情况下,lsb_release -i -s
输出会起作用...但在某些情况下该命令不可用。
更全面的例子可以在这里找到:我如何知道正在运行的 Linux 版本?
答案2
奇怪的是,之前链接的例子中没有人提到 /etc/issue。我已经使用该文件好几年了。
现在我只需使用 Puppet 中的“facter”来获取该信息,然后使用 grep 和 awk 输出。
答案3
融合库存是一个跨平台的轻量级清单工具,可以在许多 Linux 发行版以及 BSD、Windows、MacOS X 和其他 unices 上获取此信息。
如果可用,他们会使用lsb_release
上面@ewwhite 描述的方法,但如果不可用,他们会有一个非常有用的文件列表和正则表达式来检查发行版名称和版本:https://github.com/fusinv/fusioninventory-agent/blob/2.2.x/lib/FusionInventory/Agent/Task/Inventory/Input/Linux/Distro/NonLSB.pm#L16。
我建议使用 FusionInventoy 本身来获取此信息,而不是使用此逻辑重新实现您自己的脚本,因为他们的社区将保持此功能的最新状态。您可以单独使用代理(它输出易于解析的 XML/JSON 文件),也可以将其与更广泛的解决方案结合使用,以管理网络中的机器,例如胃肠道疾病或者舵,具体取决于您的需要。
答案4
您可以使用 facter 以非常规范的方式找出大量细节。它是 puppet 的一部分。