Dari shell dan tanpa hak akses root, bagaimana saya bisa menentukan versi Red Hat Enterprise Linux yang saya jalankan?
Idealnya, saya ingin mendapatkan versi rilis utama dan minor, misalnya RHEL 4.0 atau RHEL 5.1, dll.
Anda dapat menggunakan lsb_release
perintah di berbagai distribusi Linux:
lsb_release -i -r
Ini akan memberi tahu Anda Distribusi dan Versi dan sedikit lebih akurat daripada mengakses file yang mungkin atau mungkin belum dimodifikasi oleh admin atau paket perangkat lunak. Serta bekerja di beberapa distro.
Untuk RHEL, Anda harus menggunakan:
cat /etc/redhat-release
lsb_release -i -r
-bash: lsb_release: perintah tidak ditemukan. Namun,cat /etc/redhat-release
Red Hat Enterprise Linux Server merilis 5.6 (Tikanga)Anda dapat melihat isi / etc / redhat-release, yang akan terlihat seperti ini:
Konten berbeda untuk sistem RHEL yang sebenarnya. Teknik ini bekerja pada semua turunan RedHat, termasuk CentOS, Fedora, dan lainnya.
sumber
lsb_release
adalah hal pertama yang harus dicoba, tetapi karena itu mungkin tidak diinstal melihat file adalah Rencana B. yang baikSaya lebih suka menggunakan file / etc / issue.
Saya telah melihat banyak situasi di mana / etc / redhat-release telah dimodifikasi untuk memenuhi persyaratan kompatibilitas perangkat lunak (Dell atau agen manajemen HP, misalnya).
sumber
/etc/issue
juga bekerja pada OS lain juga, seperti Debian & Ubuntu, dan bekerja dengan OS Linux yang tidak sesuai dengan Basis Standar Linux, dan OS ringan yang tidak memiliki utilitas lsb * diinstal./etc/issue
dimaksudkan untuk diurai oleh agetty , yang menggantikan urutan pelarian dengan informasi yang tepat. Jika Anda hanyacat
melakukannya, hasilnya mungkin kurang memuaskan. Di Fedora, satu mendapatFedora release 20 (Heisenbug) Kernel \r on an \m (\l)
, yang memberi tahu Anda sesuatu tetapi di RHEL7, satu mendapat\S Kernel \r on an \m
./etc/issue
dapat diganti oleh admin lokal dan karenanya bukan sumber informasi yang dapat diandalkan.Cara yang paling dapat diandalkan ketika
lsb_release
tidak diinstal adalah:Pada pemasangan minimal,
lsb_release
tidak ada.Agar ini berfungsi juga dengan klon Red Hat (kredit diberikan ke komentar):
Atau, sebagai satu perintah (bukan dua "rpm" yang dieksekusi):
Gunakan
sed
/cut
dan alat manipulasi teks UNIX lainnya untuk mendapatkan yang Anda inginkan.sumber
rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'
sl adalah untuk Scientific Linux; jika Anda tahu nama yang tepat untuk pembangunan kembali RHEL lainnya, mungkin komentar di bawah ini. Peringatan - tidak diuji secara ekstensif.rpm -qa | grep release
bahkan lebih mudahDengan asumsi itu benar-benar rilis Red Hat (bukan Centos):
Atau jalankan saja:
Dan memetakan output. 2.6.9 kernel adalah RHEL4, 2.6.18 kernel adalah RHEL5. Jika perlu, Anda dapat memetakan versi lengkap untuk rilis pembaruan spesifik dari Red Hat (yaitu 2.6.9-89 adalah RHEL5 U4).
sumber
rpm -q redhat-release
hanya mengembalikanpackage redhat-release is not installed
untuk saya, danuname -r
hanya memberi tahu saya rilis kernel.Saya lebih suka
hostnamectl
:sumber
Saya cukup suka menggunakan
/etc/os-release
file, yang ada di rilis RPM:File ini dapat bersumber dari skrip, seperti:
sumber
Jika Anda hanya ingin mendapatkan nomor versi, berikut ini adalah singkat dan sederhana yang saya bisa dapatkan.
Diuji pada rhel 6.7, rhel 7.2, debian 8.3 dan ubuntu 14.04:
Untuk contoh praktis, katakan Anda ingin menguji distribusi mayor dan minor versi dan melakukan hal-hal berdasarkan itu:
sumber
Kedatangan terlambat untuk ini, tapi saya senang mencoba mencari tahu versi RHEL pada beberapa node jarak jauh. Jadi, jika Anda memiliki banyak server yang menggunakan kata sandi yang sama (saya tahu, saya tahu ...) di sini adalah cepat dan kotor untuk memeriksa versi RedHat:
Buat skrip harapan
Harapkan skrip untuk memeriksa versi RedHat utama pada beberapa host jarak jauh
Jalankan skrip untuk semua node Anda
Keluaran
sumber