A partir do shell e sem privilégios de root, como posso determinar qual versão do Red Hat Enterprise Linux estou executando?
Idealmente, gostaria de obter a versão de lançamento principal e secundária, por exemplo RHEL 4.0 ou RHEL 5.1, etc.
A partir do shell e sem privilégios de root, como posso determinar qual versão do Red Hat Enterprise Linux estou executando?
Idealmente, gostaria de obter a versão de lançamento principal e secundária, por exemplo RHEL 4.0 ou RHEL 5.1, etc.
Você pode usar o
lsb_release
comando em várias distribuições Linux:Isso informará a distribuição e a versão e é um pouco mais preciso do que acessar arquivos que podem ou não ter sido modificados pelo administrador ou por um pacote de software. Além de trabalhar em várias distros.
Para RHEL, você deve usar:
Você pode ver o conteúdo de /etc/redhat-release, que será algo assim:
O conteúdo é diferente para um sistema RHEL real. Esta técnica funciona em todos os derivados do RedHat, incluindo CentOS, Fedora e outros.
Eu prefiro usar o arquivo /etc/issue.
Já vi muitas situações em que /etc/redhat-release foi modificado para atender aos requisitos de compatibilidade de software (agentes de gerenciamento da Dell ou da HP, por exemplo).
A maneira mais confiável quando
lsb_release
não está instalado é:Em instalações mínimas,
lsb_release
está faltando.Para fazer isso funcionar também com clones da Red Hat (o crédito vai para os comentários):
Ou, como um único comando (em vez de dois "rpm" sendo executados):
Use
sed
/cut
e outras ferramentas UNIX de manipulação de texto para obter o que deseja.Supondo que seja realmente um lançamento da Red Hat (não Centos):
Ou apenas execute:
E mapeie a saída. Os kernels 2.6.9 são RHEL4, os kernels 2.6.18 são RHEL5. Se necessário, você pode mapear a versão completa para os lançamentos de atualização específicos da Red Hat (ou seja, 2.6.9-89 é RHEL5 U4).
eu prefiro
hostnamectl
:Gosto bastante de usar o
/etc/os-release
arquivo, que está no RPM de lançamento:Este arquivo pode ser originado em scripts, como:
Se você quiser apenas obter os números de versão, o seguinte é o mais curto e simples que posso obter.
Testado em rhel 6.7, rhel 7.2, debian 8.3 e Ubuntu 14.04:
Para um exemplo prático, digamos que você queira testar a versão principal e secundária da distribuição e fazer as coisas com base nisso:
Uma chegada tardia a isso, mas me diverti tentando descobrir a versão do RHEL em vários nós remotos. Então, se você tem um lote de servidores que usam a mesma senha (eu sei, eu sei...) aqui está um rápido e sujo para verificar a versão do RedHat:
Criar um script de espera
Espere script para verificar a versão principal do RedHat em vários hosts remotos
Execute o script para todos os seus nós
Resultado