Z poziomu powłoki i bez uprawnień administratora, jak mogę ustalić, którą wersję Red Hat Enterprise Linux używam?
Idealnie chciałbym uzyskać zarówno główną, jak i mniejszą wersję wydania, na przykład RHEL 4.0 lub RHEL 5.1 itp.
Możesz użyć lsb_release
polecenia w różnych dystrybucjach systemu Linux:
lsb_release -i -r
Dzięki temu dowiesz się o dystrybucji i wersji i jest nieco dokładniejszy niż dostęp do plików, które mogły zostać zmodyfikowane przez administratora lub pakiet oprogramowania. Oprócz pracy w wielu dystrybucjach.
W przypadku RHEL należy użyć:
cat /etc/redhat-release
lsb_release -i -r
-bash: lsb_release: nie znaleziono polecenia. Jednakcat /etc/redhat-release
Red Hat Enterprise Linux Server wersja 5.6 (Tikanga)Możesz spojrzeć na zawartość / etc / redhat-release, która będzie wyglądać mniej więcej tak:
Zawartość jest inna dla rzeczywistego systemu RHEL. Ta technika działa na wszystkich pochodnych RedHat, w tym CentOS, Fedora i innych.
źródło
lsb_release
jest pierwszą rzeczą do wypróbowania, ale ponieważ nie można tego zainstalować, przeglądanie plików to dobry Plan B.Wolę używać pliku / etc / issue.
Widziałem wiele sytuacji, w których / etc / redhat-release został zmodyfikowany w celu spełnienia wymagań kompatybilności oprogramowania (na przykład agenci zarządzania Dell lub HP).
źródło
/etc/issue
działa również na innych systemach operacyjnych, takich jak Debian i Ubuntu, i współpracuje z systemami Linux, które nie są zgodne z Linux Standard Stand Base, oraz z lekkimi systemami operacyjnymi, które nie mają zainstalowanych narzędzi lsb *./etc/issue
ma być analizowany przez agetty , który zastępuje sekwencje specjalne odpowiednimi informacjami. Jeśli takcat
, wynik może być rozczarowujący. Na Fedorze dostaje sięFedora release 20 (Heisenbug) Kernel \r on an \m (\l)
, co mówi coś, ale na RHEL7, po prostu dostaje\S Kernel \r on an \m
./etc/issue
może zostać zastąpiony przez lokalnego administratora i dlatego nie jest wiarygodnym źródłem informacji.Najbardziej niezawodny sposób, gdy
lsb_release
nie jest zainstalowany, to:W przypadku minimalnych instalacji
lsb_release
brakuje.Aby działało to również z klonami Red Hat (podziękowania należą się do komentarzy):
Lub jako pojedyncze polecenie (zamiast wykonywania dwóch „rpm”):
Użyj
sed
/cut
i innych narzędzi manipulujących tekstem UNIX, aby uzyskać to, czego chcesz.źródło
rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'
sl jest dla Scientific Linux; jeśli znasz właściwą nazwę dla innych odbudów RHEL, może komentuj poniżej. Ostrzeżenie - nie poddano dokładnym testom.rpm -qa | grep release
jest nawet łatwiejszeZakładając, że to naprawdę wydanie Red Hat (nie Centos):
Lub po prostu uruchom:
I mapuj dane wyjściowe. Jądra 2.6.9 to RHEL4, jądra 2.6.18 to RHEL5. W razie potrzeby możesz zamapować pełną wersję na określone wydania aktualizacji Red Hata (tj. 2.6.9-89 to RHEL5 U4).
źródło
rpm -q redhat-release
po prostu wracapackage redhat-release is not installed
do mnie iuname -r
mówi mi tylko o wydaniu jądra.Wolę
hostnamectl
:źródło
Bardzo lubię używać
/etc/os-release
pliku, który znajduje się w wersji RPM:Ten plik może pochodzić ze skryptów, takich jak:
źródło
Jeśli chcesz tylko uzyskać numery wersji, poniższe informacje są tak krótkie i proste, jak tylko mogę.
Testowane na rhel 6.7, rhel 7.2, debian 8.3 i ubuntu 14.04:
Dla praktycznego przykładu powiedz, że chcesz przetestować wersję główną i pomocniczą dystrybucji i robić rzeczy w oparciu o to:
źródło
Później do tego doszło, ale dobrze się bawiłem, próbując znaleźć wersję RHEL na kilku odległych węzłach. Tak więc, jeśli masz partię serwerów, które używają tego samego hasła (wiem, wiem ...), tutaj jest szybkie i brudne sprawdzenie wersji RedHat:
Utwórz skrypt spodziewany
Spodziewaj się, że skrypt sprawdzi główną wersję RedHat na wielu zdalnych hostach
Uruchom skrypt dla wszystkich swoich węzłów
Wynik
źródło