Получить дистрибутив и версию серверов
Возможный дубликат:
Как узнать, какая версия Linux работает?
Каков наилучший способ установить версию linux на любом сервере? Например, если сервер RedHat или CentOS, я могу просто сделать:
cat /etc/redhat-release
CentOS release 6.3 (Final)
Где все другие основные дистрибутивы хранят свои данные? Благодарю.
4 ответа
Ну, сколько вариантов вы смотрите? 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 или Rudder, в зависимости от ваших потребностей.