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

Вы уже продемонстрировали с file * то, что шарик оболочки (*) может взять этот файл, поэтому теперь просто сделайте rm на том шарике.

  • Изменитесь на каталог, в котором находится файл.
  • Выполненный rm -i *
  • Войти n для всех файлов за исключением того с на вид невидимым именем файла
14
18.10.2014, 20:35
11 ответов

Можно также использовать lsb_release команда. Если Вы уже уверены, что это - RHEL, получение номера основной версии:

majversion=$(lsb_release -rs | cut -f1 -d.)
10
27.01.2020, 19:50
  • 1
    Работы над Centos и надлежащим Redhat, сбои на Oracle релиз Linux Redhat. lsb_release, не найденный. –  user959690 20.07.2016, 23:12
  • 2
    Этот ответ кажется устаревшим теперь. Я только нахожу lsb_release на моих машинах RHEL/CentOS 5. Это нигде не найти на 6 или 7. –  Dale Anderson 07.06.2017, 21:38
  • 3
    Вы, возможно, должны установить redhat-lsb-core пакет. –  Dennis Kaarsemaker 03.07.2017, 17:55
if grep -q -i "release 6" /etc/redhat-release
then
  echo "running RHEL 6.x"
fi

Это было бы самым простым способом, которым я могу думать.

15
27.01.2020, 19:50
  • 1
    Работы для каждого изменения CentOS и RHEL я имею в своих материально-технических ресурсах от 5 до 7, в отличие от этого, lsb_release который только, кажется, работает на 5. –  Dale Anderson 07.06.2017, 21:38

Вы могли подробно остановиться на этом для нескольких дистрибутивов Linux при помощи /etc/issue файл вместо /etc/redhat-release файл.

2
27.01.2020, 19:50

Я закончил тем, что использовал ответ jordanms, но добавил мое собственное скручивание.

Поскольку я не хотел иметь все свои команды rhel6 вместе и все мои команды rhel5 вместе, но чередованный в их собственном разделе, и я не хотел должным быть копировать этот код каждый раз I wated для переключения, вместо этого я сделал это:

if   grep -q -i "release 6" /etc/redhat-release ; then
  rhel6only=1
elif grep -q -i "release 5" /etc/redhat-release ; then
  rhel5only=1
else
  echo "Running neither RHEL6.x nor RHEL 5.x !"
fi

Тем путем я мог сделать вещи как:

# JDK
[ $rhel5only ] && module load java/6
[ $rhel6only ] && module load java/7

# Eclipse
module load eclipse

# Python
[ $rhel5only ] && module load python/2
[ $rhel6only ] && module load python/3

и т.д.

0
27.01.2020, 19:50

если Ваше дальнейшее намерение состоит в том, чтобы управлять modulefiles на на основание контекста, я предлагаю, чтобы Вы проверили EasyBuild и некоторую связанную логику, живущую в формате Python:

0
27.01.2020, 19:50

Все методы, упомянутые здесь, полагаются на текстовые файлы и, как таковые, могут вводить в заблуждение. Кто-то с правом доступа может изменить содержимое / etc / redhat-release, / etc / issue и т. Д. Даже для того, чтобы просто скрыть эту информацию. Более надежный метод предполагает знание выпусков ядра, обычно предоставляемых Red Hat для каждой версии RHEL:

  • RHEL4 использует ядро ​​2.6.9-X
  • RHEL5 использует ядро ​​2.6.18-X
  • RHEL6 использует ядро ​​2.6.32-X
  • RHEL7 неизменно использует ядро ​​3.10.0-X

до сих пор, вы можете узнать текущий выпуск ядра, выполнив uname -r . Вы можете стать более интересным, выполнив что-то вроде

uname -r | awk -F- '{print $1}'

. Это даст конкретную информацию о ядре, как в приведенной выше таблице. Вы можете провести параллели с другими дистрибутивами, если они постоянно используют выпуски ядра.

0
27.01.2020, 19:50

Используйте rpm -q | grep redhat-release-server

Файл / etc / redhat-release может были отредактированы администратором, который хочет установить стороннее программное обеспечение без выполнения фактического обновления ОС.

4
27.01.2020, 19:50
major_version=$(rpm -q --queryformat '%{RELEASE}' rpm | grep -o [[:digit:]]*\$)

rpm -q --queryformat '% {RELEASE}' rpm выводит что-то вроде 25.el7 . Тогда просто нужно взять последнюю цифру (а). Проверено на RHEL 5,6,7 и Fedora 24.

Как указывали другие, lsb-version не может быть установлена. Кроме того, существует по крайней мере одна система RHEL5, в которой не установлен пакет redhat-release-server .

2
27.01.2020, 19:50

Начиная с RHEL 6, наиболее лаконичным способом будет:

cat /etc/system-release-cpe | cut -d ':' -f5
0
27.01.2020, 19:50

Вот еще один, более точный способ получить этот результат. В пакеты ядра в RHEL включена строка «elN», где N представляет основную версию ОС. Таким образом, можно запустить следующую команду, чтобы определить версию RHEL:

# uname -r | sed 's/^.*\(el[0-9]\+\).*$/\1/'

Это вернет строку «el5», «el6» или «el7», в зависимости от соответствующей строки на данном хосте.

2
27.01.2020, 19:50

Ответ пользователя 7610 работает, но он не будет работать, если в выпуске также есть второстепенная версия. Например, у меня Redhat 5 с el5 _11.

# rpm -q --queryformat '%{RELEASE}' rpm
36.el5_11
# rpm -q --queryformat '%{RELEASE}' rpm | grep -o [[:digit:]]*\$
11

Я попробовал решения user7610 и Brād одновременно. Это решило мою проблему с общим скриптом для всех версий RHEL.

# uname -r | sed 's/^.*\(el[0-9]\+\).*$/\1/' | grep -o [[:digit:]]*\$
5
0
17.11.2020, 06:33

Теги

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