Как получить информацию об операционной системе экземпляра Amazon EC2?

33

Я просто настроил экземпляр EC2 под управлением Linux. Есть ли способ получить версию / дистрибутив Linux, работающий на экземпляре, через терминал?

Дэвид
источник
uname -a должна предоставить вам информацию о ядре, времени сборки и другую информацию, включая информацию о поставщике ... (любезно предоставлено Tiernan0)
soandos

Ответы:

31

Для информации дистрибутива:

cat /etc/issue

Для ядра / архитектуры (как упоминалось ранее):

uname -a
Си Джей Трэвис
источник
cat / etc / issue сработало.
Дэвид
1
Хорошо, если только системный администратор не вставит что-либо еще /etc/issue, так как это локально управляемый файл, который отображается до входа в систему и может буквально быть чем угодно (или ничем). :) Например, мои системы в настоящее время говорят «системы требуют авторизации, несанкционированный доступ запрещен». Любой, кто вообще заботится о безопасности, возможно , не поместит всю информацию, идентифицирующую ОС, в / etc / issue.
dannysauer
@dannysauer, куда бы ты еще положил. Вся информация о чем-либо хранится на устройстве хранения. Иногда я вижу, как эта информация встраивается в двоичный исполняемый файл, который может распечатать информацию, но это мало отличается по мерам безопасности от обычного текстового файла, учитывая, что любой текстовый файл и любой исполняемый двоичный файл имеют одинаковые средства защиты на основе файловой системы
ThorSummoner
@ThorSummoner - содержимое / etc / issue отображается перед приглашением на вход. Это проблема безопасности.
dannysauer
12

Переносимая команда для Linux Standard Base-совместимых дистрибутивов (которая в значительной степени популярна) lsb_release. Дистрибутив может быть получен с помощью "-i", а версия взята из "-r". Опция "-s" подавляет столбец имени и просто показывает значение, а -a показывает, что все lsb_releaseзнают о системе. Так, например, в системе 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

Если вы используете Red Hat, SuSE, Ubuntu, Debian или что-то еще, производное от них (Fedora, CentOS и т. Д.), Эта команда будет работать. В противном случае вам придется выяснить некоторую информацию, относящуюся к дистрибутиву. RedHat, например, снова устанавливает пакет с именем redhat-releaseи создает файл в / 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)

Вот как это выглядит в системе Amazon Linux 2 со свежим предоставлением (2 февраля 2017 г.) - после сброса имени хоста:

[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/"

ИМХО, вам действительно стоит использовать, lsb_releaseесли оно доступно. Если вы просто делаете это визуально, lsb_release -aэто легко запомнить и достаточно легко прочитать. Но если это не вариант, / etc / os-release заполняется, как указано выше, для нескольких последних версий ОС Linux.

dannysauer
источник
Я твой первый подход и получаю следующую ошибку -bash: lsb_release: command not found. Я также попробовал ваш второй подход и не могу найти ничего, упоминающего о redhat /etc. Любые другие предложения?
Дэвид
Начните с проверки, есть ли в системе rpm и apt-get; запустите "which rpm" и "which apt-get". Если у вас есть rpm, выполните команду «rpm -qa | less» и посмотрите, есть ли там что-то похожее на дистрибутив. Если у вас есть apt-get, попробуйте «dpkg -l | less» и сделайте то же самое. И попробуйте "ls -d / etc / * rel *", чтобы увидеть, есть ли какой-нибудь файл релиза или что-то в / etc. О, вы также можете выполнить команду "find / -name lsb_release" на тот случай, если lsb_release не будет на вашем пути.
dannysauer
apt-getне в системе. Я не вижу ничего идентифицируемого с rpm -qa|less. ls -d /etc/*rel*работал. Я тогда nano /etc/system-release. В файле сказано, что ОС есть Amazon Linux AMI release 2011.02.1.1. Спасибо.
Дэвид
1
downvote, поскольку lsb_releaseнедоступен в Amazon Linux, что, как правило, приводит к тому, что этот вопрос задается ... lsb_releaseтребуется большая цепочка redhat-lsb-coredep, которая идет в комплекте, и aws решает оставить это вне форума
острое
1
Я сделал остальную часть ответа более ясной (которую некоторые люди, по-видимому, не читали), и включил фактический вывод из текущего Amazon Linux 2.
dannysauer
7

Это сработало для меня:

# 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/"
Кевин Мюррей
источник
Просто один на один. Я использую Amazon Linux AMI 2011.09, и это не сработало, но другие комментарии cat /usr/share/doc/system-release/ReleaseNotes.txtсделали. Это, вероятно, работает на более новых выпусках.
Мовис Ледфорд
2

uname -a должен предоставить вам информацию о ядре, времени сборки и другую информацию, в том числе о поставщике ...

TiernanO
источник
1

Как вы можете видеть при входе в AMI EC2 Amazon Linux AMI:

"См. / Usr / share / doc / system-release / для последних заметок о выпуске."

Так что ... просто наберите:

cat /usr/share/doc/system-release/ReleaseNotes.txt
frommelmak
источник
Это сработало для меня в Amazon Linux AMI 2011.09.
Мовис Ледфорд