我正在解析客户日志,我需要弄清楚他们正在运行哪个发行版。我不能在他们的系统上运行命令,我只有日志。
属性os.name总是返回Linux,但os.version返回看似内核版本的东西?例如,2.6.9-42.0.3.ELsmp或2.6.5-7.283-smp。
在一些谷歌出现后,os.version的最后一个字符可以映射到发行版。
以ELsmp或el结尾的值映射到Redhat,只是简单的smp映射到SUSE。
这是真的还是我只是如意地想着?
答案 0 :(得分:0)
如果发行版供应商将他们自己的补丁应用于内核,他们通常会在版本号中添加一个标记,以表明它是内核的自定义版本。如果他们只是使用Linus和朋友写的库存内核,那么通常不会有标签。
同一供应商的发行版之间的标签甚至可能不同,否则它们将是兼容的。或者对于不同的发行版可能是相同的。 (最后我看到,Fedora内核没有“EL”或“el”标签。但是,CentOS内核与RHEL具有相同的标签。)或者,对于某些发行版,它可能根本不存在。
答案 1 :(得分:0)
您将获得主要发行版的信息,为真。但是不可能在100%的日志中猜测它。
仅供参考:为Ubuntu搜索generic
或generic-pae
,但您会错过其他一些。除了-686
和-amd64
之外,Debian没有特定的结尾,但对于许多其他发行版来说,情况必须如此。
答案 2 :(得分:0)
只要他们使用特定于发行版的内核 - 应用了特定于发行版的补丁的vanilla内核,那就是真的。 但他们也可能使用完全不同的或定制的内核,甚至可能使用vanilla内核。而且我不确定如果它是虚拟机会发生什么。那些内核可能以-xen或-openvz或类似的方式结束。 不同的发行版也可能使用相同的内核,因此再次使它变得更难。