Estou tentando determinar qual o sabor do servidor linux está sendo executado. Não estou tentando determinar a versão do kernel - mas avalie o distribuidor.
O gcc está instalado e, na versão, diz RedHat
# gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
Isso significa que posso assumir com segurança que meu servidor é um servidor RedHat. Existe um método melhor - 100% à prova de balas para descobrir isso? Também para outros sabores do Linux - não apenas este servidor?
Edit: conteúdo de /etc/
caso isso ajude - mas eu gostaria de uma solução que funcione para outras versões do linux também.
# ls /etc/
./ backupmxhosts domainusers host.conf localdomains mailips pam.d/ relayhosts shadow trustedmailhosts
../ bashrc* exim.conf inputrc localtime man.config passwd resolv.conf skipsmtpcheckhosts userdomains
DIR_COLORS cron.deny exim.pl ld.so.cache lynx.cfg mtab profile secondarymx spammeripblocks vimrc
aliases demodomains exim.pl.local* ld.so.conf mail/ my.cnf profile.d/ senderverifybypasshosts sudoers
antivirus.exim demouids group localaliases mailhelo nsswitch.conf protocols services termcap
Não tenho arquivos *release
ou*version
/etc/
# ls /etc*release; ls /etc/*version
/bin/ls: /etc/*release: No such file or directory
/bin/ls: /etc/*version: No such file or directory
Eu tentei LSB
# lsb_release -a
LSB Version:
Distributor ID: n/a
Description: (none)
Release: n/a
Codename: n/a
Além disso - acho que estou dentro de um chroot jail
(não tenho certeza do que é isso) que provavelmente poderia ser a causa desse problema.
Atualizada:
Eu acho que isso faz isso por mim. Acho que posso assumir com segurança que estou usando cent-os.
# cat /proc/version
Linux version 2.6.9-103.plus.c4smp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Wed Dec 21 16:17:23 EST 2011
Respostas:
Exemplos:
Ubuntu:
Red Hat / CentOS:
Veja também Como saber qual distribuição Linux você está usando?
fonte
Nas distribuições Linux mais modernas, o seguinte comando fornecerá suas informações:
fonte
yum install redhat-lsb-core
./etc/issue
pode ser um bom ponto de partida.Mais informações podem ser encontradas inspecionando os arquivos de informações para diferentes distribuições:
Veja o fórum Unix para mais detalhes.
fonte
release
ouversion
no meuetc
diretórioSe
/etc/issue
estiver faltando, pode haver um ou mais/etc/*_release
arquivos.Por exemplo, meu sistema Ubuntu possui
/etc/lsb-release
:O sistema CentOS de um amigo (baseado no Red Hat) possui
/etc/redhat-release
:Não sei como isso é universal.
fonte
release
ouversion
arquivos no meu/etc/
cat / etc / issue pode responder à sua pergunta.
Os fabricantes de distribuição não são amigáveis para você aqui. Primeiro, cada um pensa que é o único caminho verdadeiro.
Provavelmente, em vez de tentar farejar a distribuição, você deve examinar mais detalhadamente a pergunta específica que realmente precisa responder. Concentre-se na funcionalidade que você está vendo, não na distribuição que a fornece. Afinal, uma nova versão de uma distro pode girar e seguir na direção oposta em qualquer eixo específico.
fonte
/etc/issue
no meu servidor/etc/issue
pode conter seqüências de escape como\n
e\l
. Para ver o que isso significaman 5 issue
eman getty
(o/etc/issue
arquivo é destinado principalmente para uso porgetty
). É claro que o proprietário do sistema pode editar/etc/issue
por algum motivo nefasto./etc/issue
é necessário existir ou conter qualquer informação sobre o fornecedor de distribuição. Geralmente acontece, mas acho que você não pode confiar nisso.Use
facter
(sim, é assim que se escreve).O Facter é um companheiro para o fantoche, fornece variáveis que podem ser consultadas e que contêm informações sobre o sistema.
Por exemplo, aqui estão apenas algumas das dezenas de variáveis que esse fator pode retornar
Você pode simplesmente consultar o fato da osfamília para ver se o servidor está executando o RedHat
Confira a documentação: http://puppetlabs.com/facter
fonte
uname -a
Funciona sempre para qualquer Tux
fonte
Não existe uma maneira única e segura de fazer isso. Fiz uma pergunta semelhante no unix.se e a melhor maneira de obter essas informações é um script que verifica uma variedade de fontes:
A outra opção é realmente usar
gcc --version
, uma vez quegcc
é sempre compilado para uma distribuição específica, isso será relativamente portátil. Eu recomendo que você leia a resposta aceita na minha pergunta na U&L, que explica muito bem a situação.fonte
Este comando funcionou para distribuições baseadas no Debian e no Redhat: Usando o filtro tr, você converte o documento para o formato de uma palavra por linha e depois conta a primeira linha que contém o nome da distribuição.
fonte
Thos é o melhor método
fonte
/etc
diretório na pergunta. Conforme discutido em outras respostas, esta solução não funciona para mim./etc/
diretório e você pode ver que nenhum arquivo lá terminam emrelease