Могу ли я надежно использовать значение os.version для определения дистрибутива Linux? - PullRequest
0 голосов
/ 05 августа 2010

Я анализирую логи клиентов, мне нужно выяснить, в каком дистрибутиве они работают.Я не могу запускать команды в их системах, все, что у меня есть, это журналы.

Свойство 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.

Это правда, или я просто желаю думать?

Ответы [ 3 ]

0 голосов
/ 05 августа 2010

Вы получите информацию об основных дистрибутивах, правда.Но это будет невозможно угадать для 100% ваших журналов.

К вашему сведению: ищите generic или generic-pae для Ubuntu, но вы пропустите другие.У Debian нет особых окончаний, кроме -686 и -amd64, но это должно иметь место во многих других дистрибутивах.

0 голосов
/ 05 августа 2010

Это верно, если они используют специфичные для дистрибутива ядра - ванильные ядра с примененными дистрибутивными патчами. Но они также могут использовать совершенно разные или нестандартные ядра, возможно даже ядро ​​ванили. И я не уверен, что произойдет, если это виртуальная машина. Эти ядра могут заканчиваться на -xen или -openvz или что-то подобное. Разные дистрибутивы также могут использовать одно и то же ядро, что делает его еще более сложным.

0 голосов
/ 05 августа 2010

Если поставщик дистрибутива применяет свои собственные патчи к ядру, они обычно добавляют тег к номеру версии, чтобы указать, что это пользовательская версия ядра. Если они просто используют стандартное ядро, написанное Линусом и его друзьями, то тега часто не будет.

Тэг может даже отличаться в дистрибутивах одного и того же поставщика, которые в противном случае были бы совместимы. Или это может быть одинаковым для разных дистрибутивов. (Последнее, что я видел, в ядрах Fedora не было тегов «EL» или «el». Однако в ядрах CentOS были те же теги, что и в RHEL.) *

...