可能重复:
我如何知道哪个版本的Linux正在运行?
什么是最好的方式来获得在任何服务器上安装的linux的味道? 例如,如果服务器是RedHat或CentOS,我可以简单地做:
cat /etc/redhat-release CentOS release 6.3 (Final)
所有其他主要分销商在哪里存储他们的详细资料? 谢谢。
那么,你看多less变种? RHEL(和克隆)以及Debian和Ubuntu。
理想情况下, lsb_release -i -s输出可以工作…但有些情况下,该命令不可用。
一个更全面的例子可以在这里find : 我如何知道哪个版本的Linux正在运行?
奇怪的是,在以前的链接的例子中没有人提到/ etc / issue。 我已经使用了该文件多年。
现在我只是用P facpet的“facter”来获取这些信息,grep&awk输出。
FusionInventory是一个跨平台的轻量级清单工具,可以在许多Linux发行版上获得这些信息,但也可以在BSD,Windows,MacOS X和其他unices上使用。
如果可用,他们使用lsb_release ,如上面的lsb_release所描述的,但是如果没有,他们有一个非常有用的文件列表和正则expression式来检查发行版名称和版本: https : //github.com/fusinv/fusioninventory-agent/blob /2.2.x/lib/FusionInventory/Agent/Task/Inventory/Input/Linux/Distro/NonLSB.pm#L16 。
我build议使用FusionInventoy本身来获取这些信息,而不是用这个逻辑重新实现自己的脚本,因为他们的社区会保持这个function是最新的。 您可以自行使用代理(输出一个容易parsing的XML / JSON文件),也可以将其与更广泛的解决scheme结合使用,以根据您的需要pipe理networking中的计算机(如GLPI或Rudder) 。
您可以使用facter以很好的规范化的方式找出很多细节。 这是傀儡的一部分。