Назад | Перейти на главную страницу

Получить дистрибутив и версию серверов

Возможный дубликат:
Как узнать, какая версия Linux работает?

Как лучше всего ощутить вкус Linux, установленного на любом сервере? Например, если сервер RedHat или CentOS, я могу просто сделать:

cat /etc/redhat-release
CentOS release 6.3 (Final)

Где все другие основные дистрибутивы хранят свои файлы данных? Спасибо.

Ну сколько вариантов вы смотрите? RHEL (и клоны), а также Debian и Ubuntu.

В идеале, lsb_release -i -s вывод будет работать ... Но могут быть случаи, когда эта команда недоступна.

Более подробный пример доступен по адресу: Как узнать, какая версия Linux работает?

Странно, что никто не упомянул / etc / issue в ранее связанном примере. Я использовал этот файл много лет.

В настоящее время я просто использую «facter» с Puppet, чтобы получить эту информацию, grep и awk на выходе.

Вы можете использовать facter, чтобы узнать много деталей в хорошо нормализованном виде. Это часть марионетки.

FusionInventory - это кроссплатформенный легкий инструмент инвентаризации, который может получать эту информацию во многих дистрибутивах Linux, а также в BSD, Windows, MacOS X и других системах.

Если доступно, они используют 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, который легко анализировать), или объединить его с более широким решением для управления машинами в вашей сети, например GLPI или Руль, в зависимости от ваших потребностей.