Wie kann ich in der Shell und ohne Root-Rechte feststellen, welche Red Hat Enterprise Linux-Version ich verwende?
Im Idealfall möchte ich sowohl die Haupt- als auch die Nebenversion erhalten, zum Beispiel RHEL 4.0 oder RHEL 5.1 usw.
Sie können den lsb_release
Befehl auf verschiedenen Linux-Distributionen verwenden:
lsb_release -i -r
Dies gibt Aufschluss über die Verteilung und Version und ist ein bisschen genauer als der Zugriff auf Dateien, die möglicherweise vom Administrator oder einem Softwarepaket geändert wurden oder nicht. Sowie über mehrere Distributionen hinweg arbeiten.
Für RHEL sollten Sie verwenden:
cat /etc/redhat-release
lsb_release -i -r
-bash: lsb_release: Befehl nicht gefunden. Allerdingscat /etc/redhat-release
Release von Red Hat Enterprise Linux Server 5.6 (Tikanga)Sie können sich den Inhalt von / etc / redhat-release ansehen, der ungefähr so aussieht:
Die Inhalte sind für ein tatsächliches RHEL-System unterschiedlich. Diese Technik funktioniert auf allen RedHat-Derivaten, einschließlich CentOS, Fedora und anderen.
quelle
lsb_release
ist das erste, was Sie versuchen sollten, aber da dies möglicherweise nicht installiert ist, ist das Durchsuchen von Dateien ein guter Plan B.Ich bevorzuge die / etc / issue-Datei.
Ich habe viele Situationen erlebt, in denen / etc / redhat-release geändert wurde, um die Softwarekompatibilitätsanforderungen zu erfüllen (z. B. die Verwaltungsagenten von Dell oder HP).
quelle
/etc/issue
funktioniert auch auf anderen Betriebssystemen, wie Debian und Ubuntu, und funktioniert mit Linux-Betriebssystemen, die nicht der Linux Standards Base entsprechen, und leichten Betriebssystemen, auf denen die lsb * -Dienstprogramme nicht installiert sind./etc/issue
soll durch agetty analysiert werden , die die Escape-Sequenzen mit richtigen Informationen ersetzt. Wenn Sie es einfachcat
so machen, kann das Ergebnis nicht überzeugend sein. Auf Fedora bekommt manFedora release 20 (Heisenbug) Kernel \r on an \m (\l)
, was einem etwas sagt, aber auf RHEL7 bekommt man nur\S Kernel \r on an \m
./etc/issue
möglicherweise durch den lokalen Administrator ersetzt wird und daher keine zuverlässige Informationsquelle ist.Der zuverlässigste Weg, wenn
lsb_release
nicht installiert ist , ist:Bei minimalen Installationen
lsb_release
fehlt.Damit dies auch mit Red Hat-Klonen funktioniert (siehe Kommentare):
Oder als einzelner Befehl (anstatt dass zwei "rpm" ausgeführt werden):
Verwenden Sie
sed
/cut
und andere UNIX-Tools zur Textbearbeitung, um die gewünschten Informationen zu erhalten.quelle
rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'
sl ist für Scientific Linux; Wenn Sie den richtigen Namen für andere RHEL-Umbauten kennen, können Sie unten einen Kommentar abgeben. Warnung - nicht ausgiebig getestet.rpm -qa | grep release
ist noch einfacherAngenommen, es handelt sich tatsächlich um eine Red Hat-Version (nicht Centos):
Oder einfach laufen:
Und ordnen Sie die Ausgabe. 2.6.9-Kernel sind RHEL4, 2.6.18-Kernel sind RHEL5. Bei Bedarf können Sie die Vollversion den spezifischen Update-Releases von Red Hat zuordnen (dh 2.6.9-89 ist RHEL5 U4).
quelle
rpm -q redhat-release
kehrt geradepackage redhat-release is not installed
für mich zurück unduname -r
teilt mir nur die Kernelfreigabe mit.Ich bevorzuge
hostnamectl
:quelle
Ich benutze sehr gerne die
/etc/os-release
Datei, die im Release-RPM enthalten ist:Diese Datei kann in Skripten bezogen werden, wie zum Beispiel:
quelle
Wenn Sie nur die Versionsnummern erhalten möchten, ist das Folgende ungefähr so kurz und einfach, wie ich es bekommen kann.
Getestet auf Rhel 6.7, Rhel 7.2, Debian 8.3 und Ubuntu 14.04:
Nehmen wir als praktisches Beispiel an, Sie möchten die Haupt- und Nebenversion der Distribution testen und die folgenden Schritte ausführen:
quelle
Ein verspäteter Einstieg, aber ich hatte Spaß daran, die RHEL-Version auf mehreren entfernten Knoten herauszufinden. Wenn Sie also mehrere Server haben, die dasselbe Passwort verwenden (ich weiß, ich weiß ...), können Sie hier schnell und einfach die RedHat-Version überprüfen:
Erstellen Sie ein Expect-Skript
Erwarten Sie, dass das Skript die Hauptversion von RedHat auf mehreren Remote-Hosts überprüft
Führen Sie das Skript für alle Knoten aus
Ausgabe
quelle