Как из оболочки и без привилегий root как определить, какую версию Red Hat Enterprise Linux я использую?
В идеале я хотел бы получить как основную, так и вспомогательную версию, например, RHEL 4.0 или RHEL 5.1 и т. Д.
Вы можете использовать lsb_release
команду в различных дистрибутивах Linux:
lsb_release -i -r
Это скажет вам Распространение и версию и будет немного более точным, чем доступ к файлам, которые могли или не могли быть изменены администратором или пакетом программного обеспечения. А также работает в нескольких дистрибутивах.
Для RHEL вы должны использовать:
cat /etc/redhat-release
lsb_release -i -r
-bash: lsb_release: команда не найдена. Тем не менее,cat /etc/redhat-release
Red Hat Enterprise Linux Server версии 5.6 (Tikanga)Вы можете посмотреть содержимое / etc / redhat-release, которое будет выглядеть примерно так:
Содержание отличается для реальной системы RHEL. Этот метод работает со всеми производными RedHat, включая CentOS, Fedora и другие.
источник
lsb_release
это первое, что нужно попробовать, но так как это может быть не установлено, просмотр файлов - это хороший план Б.Я предпочитаю использовать файл / etc / issue.
Я видел много ситуаций, когда / etc / redhat-release был изменен для соответствия требованиям совместимости программного обеспечения (например, Dell или агенты управления HP).
источник
/etc/issue
также работает на других ОС, таких как Debian и Ubuntu, и работает с ОС Linux, которые не соответствуют базе стандартов Linux, и с облегченными ОС, в которых не установлены утилиты lsb *./etc/issue
, предназначается для разбора agetty , которое заменяет escape-последовательности правильной информацией. Если вы толькоcat
это, результат может быть не в восторге. На Fedora каждый получаетFedora release 20 (Heisenbug) Kernel \r on an \m (\l)
, что говорит вам кое-что, но на RHEL7 он просто получает\S Kernel \r on an \m
./etc/issue
может быть заменен локальным администратором и, следовательно, не является надежным источником информации.Самый надежный способ, когда
lsb_release
он не установлен :На минимальных установках
lsb_release
отсутствует.Чтобы это работало также с клонами Red Hat (ссылка на комментарии):
Или, как одна команда (а не два выполняемых rpm):
Используйте
sed
/cut
и другие текстовые инструменты UNIX, чтобы получить то, что вы хотите.источник
rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'
sl для Scientific Linux; если вы знаете правильное название для других перестроений RHEL, возможно, прокомментируйте ниже. Предупреждение - не всесторонне проверено.rpm -qa | grep release
еще прощеПредполагая, что это действительно релиз Red Hat (не Centos):
Или просто запустите:
И отобразить вывод. Ядра 2.6.9 - это RHEL4, ядра 2.6.18 - это RHEL5. При необходимости вы можете сопоставить полную версию с конкретными выпусками обновлений от Red Hat (т.е. 2.6.9-89 - это RHEL5 U4).
источник
rpm -q redhat-release
просто возвращаетсяpackage redhat-release is not installed
за мной иuname -r
просто говорит мне о выпуске ядра.Я предпочитаю
hostnamectl
:источник
Мне очень нравится использовать
/etc/os-release
файл, который есть в выпуске RPM:Этот файл может быть получен в сценариях, например:
источник
Если вы хотите просто получить номера версий, то следующее будет максимально коротким и простым.
Протестировано на rhel 6.7, rhel 7.2, debian 8.3 и ubuntu 14.04:
В качестве практического примера скажем, что вы хотите протестировать мажорную и минорную версию дистрибутива и сделать что-то на этой основе:
источник
Позднее прибытие к этому, но я весело провел время, пытаясь выяснить версию RHEL на нескольких удаленных узлах. Итак, если у вас есть группа серверов, которые используют один и тот же пароль (я знаю, я знаю ...), вот быстрый и грязный способ проверить версию RedHat:
Создать сценарий ожидания
Ожидайте скрипт для проверки основной версии RedHat на нескольких удаленных хостах
Запустите скрипт для всех ваших узлов
Выход
источник