Какую версию RHEL я использую?

Из оболочки и без привилегий root, как я могу определить, какую версию Red Hat Enterprise Linux я запускаю?

В идеале я хотел бы получить как основную, так и младшую версию версии, например RHEL 4.0 или RHEL 5.1 и т. д.

136 голосов | спросил Arthur Ulfeldt 1 TueEurope/Moscow2009-12-01T04:59:58+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2009 04:59:58 +0300 2009, 04:59:58

8 ответов


138

Вы можете использовать команду lsb_release в различных дистрибутивах Linux:

  lsb_release -i -r
 

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

Для RHEL вы должны использовать:

  cat /etc /redhat-release
 
ответил Zypher 1 TueEurope/Moscow2009-12-01T09:47:20+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2009 09:47:20 +0300 2009, 09:47:20
137

Вы можете посмотреть содержимое /etc /redhat-release, которое будет выглядеть примерно так:

  $ cat /etc /redhat-release
Версия CentOS 5.4 (Final)
 

Содержимое для системы RHEL отличается. Этот метод работает со всеми производными RedHat, включая CentOS, Fedora и другие.

ответил larsks 1 TueEurope/Moscow2009-12-01T05:13:08+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2009 05:13:08 +0300 2009, 05:13:08
25

Я предпочитаю использовать файл /etc /issue.

  $ cat /etc /issue
 

Я видел много ситуаций, когда /etc /redhat-release была изменена для соответствия требованиям совместимости программного обеспечения (например, агенты управления Dell или HP).

ответил ewwhite 1 TueEurope/Moscow2009-12-01T08:35:42+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2009 08:35:42 +0300 2009, 08:35:42
13

Самый надежный способ , когда lsb_release не установлен :

  # rpm -q --queryformat '% {VERSION}' redhat-release-сервер
6Server

# rpm -q --queryformat '% {RELEASE}' redhat-release-сервер
6.4.0.4.el6
 

При минимальных установках отсутствует lsb_release .

Чтобы это работало также с клонами Red Hat (кредит идет на комментарии):

  # rpm -q --queryformat '% {VERSION}' $ (rpm -qa '(redhat | sl | slf | centos | oraclelinux) -release (| -server | -workstation | -client | - computenode) ')
 

Или, как одна команда (вместо выполнения двух «rpm»):

  # rpm -qa --queryformat '% {VERSION} \ n' '(redhat | sl | slf | centos | oraclelinux) -release (| -server | -workstation | -client | -computenode)'
 

Используйте sed / cut и другие инструменты для работы с UNIX, чтобы получить то, что вы хотите.

ответил lzap 5 J0000006Europe/Moscow 2013, 15:15:36
5

Предполагая, что это действительно релиз Red Hat (не Centos):

  rpm -q redhat-release
 

Или просто запустите:

  uname -r
 

И отобразите вывод. 2.6.9 ядра - RHEL4, ядра 2.6.18 - RHEL5. При необходимости вы можете сопоставить полную версию с конкретными версиями обновлений от Red Hat (то есть 2.6.9-89 - RHEL5 U4).

ответил TCampbell 1 TueEurope/Moscow2009-12-01T16:36:28+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2009 16:36:28 +0300 2009, 16:36:28
0

Если вы хотите просто получить номера версий, это примерно так же просто и просто, как я могу его получить.

Протестировано на rhel 6.7, rhel 7.2, debian 8.3 и ubuntu 14.04:

  lsb_release -s -r | cut -d '.' -f 1
 

Для практического примера, скажем, вы хотите протестировать основную и второстепенную версию распространения и сделать что-то на основе этого:

  #! /Bin /Баш

major = $ (lsb_release -s -r | cut -d '.' -f 1)
minor = $ (lsb_release -s -r | cut -d '.' -f 2)

if (("$ major"> = 7))
тогда
  echo «Сделайте что-нибудь, основная версия ОС - $ major»
  echo "младшая версия ОС - $ minor"
еще
  эхо «Делайте другие вещи»
  echo "Ваша версия $ major. $ minor"
фи
 
ответил aseq 6 AMpWed, 06 Apr 2016 03:44:54 +030044Wednesday 2016, 03:44:54
0

Позднее прибытие к этому, но мне было весело, пытаясь выяснить версию RHEL на нескольких удаленных узлах. Итак, если у вас есть группа серверов, которые используют один и тот же пароль (я знаю, я знаю ...), это быстро и грязно, чтобы проверить версию RedHat:

Создать сценарий ожидания

  vim server-version.sh
 

Ожидайте, что скрипт проверяет основную версию RedHat на нескольких удаленных хостах

  #! /USR /бен /ожидать
log_user 0
spawn ssh -l root [lindex $ argv 0]
ожидайте "соглашение:"
отправить "sUp3rS3cr3tP4ssW0rd ^ \ r"
ожидать "#"
log_user 1
отправить "cat /etc /redhat-release \ r"
ожидать "* #"
log_user 0
отправить "exit \ n"
 

Запустить скрипт для всех ваших узлов

  [root @ home ~] #
для сервера в server1 server2 server3 server4 server5; do echo -e "$ server: \ c"; /root/server-version.sh $ server; эхо; эхо; сделанный;
 

<сильный> Выход

  server1: cat /etc /redhat-release
Версия Red Hat Enterprise Linux Server 7.3 (Maipo)
[root @ server1 ~] #

server2: cat /etc /redhat-release
Версия Red Hat Enterprise Linux Server 7.3 (Maipo)
[root @ server2 ~] #

...
 
ответил Lefty G Balogh 5 +03002017-10-05T15:31:25+03:00312017bEurope/MoscowThu, 05 Oct 2017 15:31:25 +0300 2017, 15:31:25
0

Мне очень нравится использовать файл /etc /os-release , который находится в RPM выпуска:

  # yum whatprovides /etc /os-release
Загруженные плагины: fastestmirror, langpacks
Определение самых быстрых зеркал
 * база: dl.za.jsdaav.net
 * Дополнительные услуги: dl.za.jsdaav.net
 * Обновления: dl.za.jsdaav.net
centos-release-7-4.1708.el7.centos.x86_64: файл выпуска CentOS Linux
Репо: базовое
Соответствует:
Имя файла: /etc /os-release

centos-release-7-4.1708.el7.centos.x86_64: файл выпуска CentOS Linux
Репо: @anaconda
Соответствует:
Имя файла: /etc /os-release
 

Этот файл может быть найден в сценариях, например:

  $ source /etc /os-release
$ echo $ NAME
CentOS Linux
$ echo $ VERSION
7 (Ядро)
 
ответил Andrew 23 Jpm1000000pmTue, 23 Jan 2018 23:28:46 +030018 2018, 23:28:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132