Como obter informações do sistema operacional da instância do Amazon EC2?

33

Acabei de configurar uma instância do EC2 executando o Linux. Existe uma maneira de obter a versão / distribuição do Linux que está sendo executada na instância por meio do terminal?

David
fonte
uname -a deve fornecer informações sobre o Kernel, tempo de compilação e outras informações, incluindo o fornecedor ... (cortesia de Tiernan0)
soandos

Respostas:

31

Para informações de distribuição:

cat /etc/issue

Para Kernel / arquitetura (como mencionado anteriormente):

uname -a
CJ Travis
fonte
cat / etc / issue funcionou.
David
1
Bem, a menos que o sysadmin coloque mais alguma coisa /etc/issue, pois esse é um arquivo gerenciado localmente que é exibido antes do login e pode literalmente ser qualquer coisa (ou nada). :) Por exemplo, meus sistemas atualmente dizem "sistemas requerem autorização, acesso não autorizado é ilegal" lá. Qualquer um que se preocupe com segurança provavelmente não coloca todas as informações de identificação do SO no / etc / issue.
21417 Dannysauer
@dannysauer onde mais você colocaria. Todas as informações sobre qualquer coisa são armazenadas no dispositivo de armazenamento. Às vezes, vejo essas informações incorporadas em um executável binário que pode imprimi-las, mas isso é um pouco diferente na medida de segurança que em um arquivo de texto sem formatação, considerando que qualquer arquivo de texto e qualquer binário executável compartilham as mesmas proteções baseadas em sistema de arquivos
ThorSummoner
@ThorSummoner - o conteúdo de / etc / issue é exibido antes do prompt de login. Essa é a questão da segurança.
dannysauer
12

O comando portátil para distribuições compatíveis com Linux Standard Base (que é praticamente tudo popular) é lsb_release. A distribuição pode ser obtida por "-i" e a versão vem de "-r". A opção "-s" suprime a coluna de nome e apenas mostra o valor, e -a mostra tudo o que lsb_releasesabe sobre o sistema. Então, por exemplo, em um sistema RHEL 5.5:

$ lsb_release -s -i
RedHatEnterpriseServer

$ lsb_release -s -r
5.5

$ lsb_release -a
LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Release:        5.5
Codename:       Tikanga

Se você usa Red Hat, SuSE, Ubuntu, Debian ou qualquer outra coisa derivada deles (Fedora, CentOS, o que for), esse comando funcionará. Caso contrário, você precisará descobrir algumas informações específicas da distribuição. O RedHat, por exemplo novamente, instala um pacote chamado redhat-releasee cria um arquivo em / etc:

$ rpm -q redhat-release
redhat-release-5Server-5.5.0.2

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

Aqui está a aparência de um sistema Amazon Linux 2 recém-provisionado (2 de fevereiro de 2017) - depois de redefinir o nome do host:

[ec2-user@fresh-amazon-host ~]$ cat /etc/system-release
Amazon Linux release 2.0 (2017.12) LTS Release Candidate
[ec2-user@fresh-amazon-host ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2.0 (2017.12)"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2.0"
PRETTY_NAME="Amazon Linux 2.0 (2017.12) LTS Release Candidate"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2.0"
HOME_URL="https://amazonlinux.com/"

IMHO, você realmente deve usar, lsb_releasese estiver disponível. Se você está apenas visualizando, lsb_release -aé fácil de lembrar e razoavelmente fácil de ler. Mas se isso não for uma opção, o / etc / os-release será preenchido como acima em algumas versões recentes do SO Linux.

dannysauer
fonte
Sou sua primeira abordagem e recebo o seguinte erro -bash: lsb_release: command not found. Também tentei sua segunda abordagem e não consigo encontrar nada que mencione redhat in /etc. Alguma outra sugestão?
David
Comece verificando se o rpm e o apt-get estão no sistema; execute "qual rpm" e "qual apt-get". Se você tiver rpm, faça um "rpm -qa | less" e verifique se há algo parecido com uma distribuição. Se você possui o apt-get, tente "dpkg -l | less" e faça a mesma coisa. E tente "ls -d / etc / * rel *" para ver se há algum arquivo de lançamento ou algo no / etc. Ah, você também pode fazer um "find / -name lsb_release" caso o lsb_release não esteja no seu caminho.
Dannysauer 31/05
apt-getnão está no sistema. Não vejo nada identificável rpm -qa|less. ls -d /etc/*rel*trabalhou. Eu então nano /etc/system-release. No arquivo, ele me diz que o sistema operacional é Amazon Linux AMI release 2011.02.1.1. Obrigado.
David
1
downvote, uma vez que lsb_releasenão está disponível no amazon linux, o que geralmente leva a essa pergunta ser solicitada ... lsb_releaserequer uma grande cadeia de dep que vem com o redhat-lsb-coreaws e escolhe deixá-lo fora - forums.aws.amazon.com/message.jspa?messageID = 519816
interessado em
1
Eu fiz o resto da resposta mais clara (que algumas pessoas, aparentemente, não estavam lendo), e contou com a saída real da atual Amazon Linux 2.
dannysauer
7

Isso funcionou para mim:

# cat /etc/os-release

NAME="Amazon Linux AMI"
VERSION="2015.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.03"
PRETTY_NAME="Amazon Linux AMI 2015.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2015.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Kevin Murray
fonte
Apenas um aviso. Estou executando o Amazon Linux AMI 2011.09 e isso não funcionou, mas outros comentários funcionaram cat /usr/share/doc/system-release/ReleaseNotes.txt. Provavelmente isso funciona em edições mais recentes.
Mauvis Ledford
2

uname -a deve fornecer informações sobre o Kernel, tempo de compilação e outras informações, incluindo o fornecedor ...

TiernanO
fonte
1

Como você pode ver ao fazer login em uma AMI EC2 Amazon Linux AMI:

"Consulte / usr / share / doc / release do sistema / para obter as notas de versão mais recentes."

Então ... basta digitar:

cat /usr/share/doc/system-release/ReleaseNotes.txt
frommelmak
fonte
Isso funcionou para mim Amazon Linux AMI 2011.09.
Mauvis Ledford