Bagaimana cara mendapatkan info sistem operasi Amazon EC2?

33

Saya baru saja menyiapkan instance EC2 yang menjalankan Linux. Apakah ada cara untuk mendapatkan versi / distribusi Linux yang berjalan pada instance melalui terminal?

David
sumber
uname -a harus memberi Anda informasi tentang Kernel, waktu pengembangan, dan beberapa info lainnya, termasuk vendor ... (milik Tiernan0)
soandos

Jawaban:

31

Untuk info distro:

cat /etc/issue

Untuk Kernel / arsitektur (seperti yang disebutkan sebelumnya):

uname -a
CJ Travis
sumber
cat / etc / issue berhasil.
David
1
Nah, kecuali sysadmin memasukkan hal lain /etc/issue, karena itu adalah file yang dikelola secara lokal yang ditampilkan sebelum login dan secara harfiah bisa berupa apa saja (atau tidak sama sekali). :) Sebagai contoh, sistem saya saat ini mengatakan "sistem memerlukan otorisasi, akses tidak sah adalah ilegal" di sana. Siapa pun yang peduli dengan keamanan mungkin tidak memasukkan semua OS yang mengidentifikasi informasi dalam / etc / issue.
dannysauer
@ Dannysauer di mana lagi Anda meletakkannya Semua informasi tentang apa pun disimpan di perangkat penyimpanan. Kadang-kadang saya melihat informasi ini menanamkan dalam biner yang dapat dieksekusi yang dapat mencetak informasi, tetapi itu sedikit berbeda dalam ukuran keamanan daripada file teks biasa, mengingat file teks apa pun dan biner yang dapat dieksekusi berbagi perlindungan berbasis sistem file yang sama
ThorSummoner
@ThorSummoner - konten / etc / issue ditampilkan sebelum prompt login. Itu masalah keamanan.
dannysauer
12

Perintah portabel untuk distribusi yang kompatibel dengan Linux Standard Base (yang cukup populer) lsb_release. Distribusi dapat diperoleh dengan "-i" dan versi tersebut berasal dari "-r". Opsi "-s" menekan kolom nama dan hanya menunjukkan nilainya, dan -a menunjukkan semua yang lsb_releasetahu tentang sistem. Jadi, misalnya pada sistem 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

Jika Anda menggunakan Red Hat, SuSE, Ubuntu, Debian, atau apa pun yang berasal dari itu (Fedora, CentOS, apa pun), perintah ini akan berfungsi. Jika tidak, Anda harus mencari tahu beberapa info khusus distro. RedHat, misalnya lagi, menginstal paket yang bernama redhat-releasedan membuat file di / 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)

Inilah yang tampak seperti pada sistem Amazon Linux 2 yang baru disediakan (setelah 2 Februari 2017) - setelah saya mereset nama 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, Anda benar-benar harus menggunakan lsb_releasejika tersedia. Jika Anda hanya melakukannya secara visual, lsb_release -amudah diingat dan cukup mudah dibaca. Tetapi jika itu bukan pilihan, / etc / os-release diisi seperti di atas pada beberapa versi OS Linux baru-baru ini.

dannysauer
sumber
Saya pendekatan pertama Anda dan dapatkan kesalahan berikut -bash: lsb_release: command not found. Saya juga mencoba pendekatan kedua Anda dan tidak dapat menemukan apa pun yang menyebutkan redhat /etc. Ada saran lain?
David
Mulailah dengan memeriksa untuk melihat apakah rpm dan apt-get ada di sistem; jalankan "rpm mana" dan "yang apt-get". Jika Anda memiliki rpm, lakukan "rpm -qa | less" dan lihat apakah ada sesuatu yang terdengar seperti distribusi. Jika Anda memiliki apt-get, coba "dpkg -l | less" dan lakukan hal yang sama. Dan coba "ls -d / etc / * rel *" untuk melihat apakah ada file rilis atau apapun di / etc. Oh, Anda mungkin juga melakukan "find / -name lsb_release" kalau-kalau lsb_release tidak ada di jalur Anda.
dannysauer
apt-gettidak ada di sistem. Saya tidak melihat apa pun yang dapat diidentifikasi rpm -qa|less. ls -d /etc/*rel*bekerja. Saya kemudian nano /etc/system-release. Dalam file itu memberitahu saya bahwa OS itu Amazon Linux AMI release 2011.02.1.1. Terima kasih.
David
1
downvote karena lsb_releasetidak tersedia di amazon linux, yang umumnya mengarah ke pertanyaan ini ditanyakan ... lsb_releasememerlukan rantai dep besar yang datang dengan redhat-lsb-coredan aws memilih untuk meninggalkan itu - forums.aws.amazon.com/message.jspa?messageID = 519816
tajam
1
Saya membuat sisa jawaban lebih jelas (yang beberapa orang tampaknya tidak membaca), dan termasuk keluaran aktual dari Amazon Linux 2.
dannysauer
7

Ini bekerja untuk saya:

# 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
sumber
Hanya kepala. Saya menjalankan Amazon Linux AMI 2011.09 dan ini tidak berhasil tetapi komentar lain cat /usr/share/doc/system-release/ReleaseNotes.txtberhasil. Ini mungkin berfungsi pada edisi yang lebih baru.
Mauvis Ledford
2

uname -a harus memberi Anda informasi tentang Kernel, waktu pengembangan, dan beberapa info lainnya, termasuk vendor ...

Tiernano
sumber
1

Seperti yang Anda lihat ketika masuk ke AMI EC2 Amazon Linux AMI:

"Lihat / usr / share / doc / system-release / untuk catatan rilis terbaru."

Jadi ... ketikkan saja:

cat /usr/share/doc/system-release/ReleaseNotes.txt
darimelmak
sumber
Ini berhasil untuk saya Amazon Linux AMI 2011.09.
Mauvis Ledford