Як отримати інформацію про операційну систему екземпляра Amazon EC2?


33

Я просто налаштував екземпляр EC2 під управлінням Linux. Чи є спосіб отримати версію / розповсюдження Linux, що працює на екземплярі через термінал?


uname - я повинен дати вам інформацію про Kernel, час збирання та іншу інформацію, включаючи постачальника ... (люб'язно надано Tiernan0)
soandos

Відповіді:


31

Для інформації про дистрибуцію:

cat /etc/issue

Для ядра / архітектури (як згадувалося раніше):

uname -a

кішка / тощо / випрацювали.
Девід

1
Ну, якщо тільки sysadmin не вводить нічого іншого /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)

Ось як це виглядає у щойно створеній системі (2 лютого 2017 року) системи Amazon Linux 2 - після того, як я скинув ім’я хоста:

[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.


Я ваш перший підхід і отримую наступну помилку -bash: lsb_release: command not found. Я також спробував ваш другий підхід і не можу знайти нічого згаданого redhat в /etc. Будь-які інші пропозиції?
Девід

Почніть з перевірки, чи є rpm та apt-get у системі; запустити "які обороти в хвилину" та "які влучні". Якщо у вас є rpm, зробіть "rpm -qa | менше" і подивіться, чи є щось там, що звучить як розподіл. Якщо у вас є apt-get, спробуйте "dpkg -l | менше" і зробіть те ж саме. І спробуйте "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вимагає великої ланцюга dep, яка поставляється разом, redhat-lsb-coreі Aws вирішує залишити це - forums.aws.amazon.com/message.jspa?messageID = 519816
захопливий

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 повинен дати вам інформацію про ядро, час збирання та іншу інформацію, включаючи постачальника ...


1

Як ви бачите при вході в AMI EC2 Amazon Linux AMI:

"Дивіться / usr / share / doc / system-release / для останніх нотаток до випуску."

Отже ... просто введіть:

cat /usr/share/doc/system-release/ReleaseNotes.txt

Це працювало для мене в Росії Amazon Linux AMI 2011.09.
Мавіс Ледфорд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.