Возможный дубликат:
Как узнать, какая версия 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 или Руль, в зависимости от ваших потребностей.