Làm cách nào để có được thông tin hệ điều hành Amazon EC2?


33

Tôi chỉ thiết lập một phiên bản EC2 chạy Linux. Có cách nào để có được phiên bản / bản phân phối Linux đang chạy trên phiên bản qua thiết bị đầu cuối không?


uname -a sẽ cung cấp cho bạn thông tin về Hạt nhân, thời gian xây dựng và một số thông tin khác, bao gồm nhà cung cấp ... (lịch sự của Tiernan0)
soandos

Câu trả lời:


31

Để biết thông tin phân phối:

cat /etc/issue

Đối với Kernel / architecture (như đã đề cập trước đó):

uname -a

mèo / etc / vấn đề làm việc.
David

1
Chà, trừ khi sysadmin đặt bất cứ thứ gì khác vào /etc/issue, vì đó là một tệp được quản lý cục bộ được hiển thị trước khi đăng nhập và có thể là bất cứ thứ gì (hoặc không có gì). :) Ví dụ: các hệ thống của tôi hiện nói "hệ thống yêu cầu ủy quyền, truy cập trái phép là bất hợp pháp" trong đó. Bất cứ ai quan tâm đến bảo mật đều có thể không đưa tất cả thông tin nhận dạng hệ điều hành vào / etc / vấn đề.
dannysauer

@dannysauer nơi khác bạn sẽ đặt nó. Tất cả thông tin về bất cứ điều gì được lưu trữ trên thiết bị lưu trữ. Đôi khi tôi thấy thông tin này được nhúng trong tệp thực thi nhị phân có thể in thông tin ra, nhưng khác biệt về biện pháp bảo mật so với tệp văn bản thuần túy, xem xét cả bất kỳ tệp văn bản và bất kỳ tệp nhị phân thực thi nào đều chia sẻ cùng một biện pháp bảo vệ dựa trên hệ thống tệp
ThorSummoner

@ThorSummoner - nội dung của / etc / vấn đề được hiển thị trước dấu nhắc đăng nhập. Đó là vấn đề bảo mật.
dannysauer

12

Lệnh di động cho các bản phân phối tương thích với Cơ sở Tiêu chuẩn Linux (có khá nhiều thứ phổ biến) lsb_release. Phân phối có thể được lấy bằng "-i" và phiên bản đến từ "-r". Tùy chọn "-s" chặn cột tên và chỉ hiển thị giá trị, và -a hiển thị mọi thứ lsb_releasebiết về hệ thống. Vì vậy, ví dụ trên hệ thống 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

Nếu bạn đang sử dụng Red Hat, SuSE, Ubuntu, Debian hoặc bất kỳ thứ gì khác có nguồn gốc từ những thứ đó (Fedora, CentOS, bất cứ thứ gì), lệnh này sẽ hoạt động. Nếu không, bạn sẽ phải tìm ra một số thông tin cụ thể về phân phối. RedHat, chẳng hạn, một lần nữa, cài đặt một gói có tên redhat-releasevà tạo một tệp trong / 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)

Đây là giao diện của hệ thống Amazon Linux 2 được cung cấp mới (ngày 2 tháng 2 năm 2017) - sau khi tôi đặt lại tên máy chủ:

[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, bạn thực sự nên sử dụng lsb_releasenếu nó có sẵn. Nếu bạn chỉ đang làm nó một cách trực quan, lsb_release -adễ nhớ và dễ đọc một cách hợp lý. Nhưng nếu đó không phải là một tùy chọn, / etc / os-release được phổ biến như trên trên một vài phiên bản HĐH Linux gần đây.


Tôi tiếp cận đầu tiên của bạn và nhận được lỗi sau -bash: lsb_release: command not found. Tôi cũng đã thử cách tiếp cận thứ hai của bạn và không thể tìm thấy bất cứ điều gì đề cập đến redhat in /etc. Bất cứ một đề nghị nào khác?
David

Bắt đầu bằng cách kiểm tra xem vòng / phút và apt-get có trên hệ thống không; chạy "vòng / phút" và "apt-get". Nếu bạn có vòng / phút, hãy thực hiện "vòng / phút-ít hơn" và xem liệu có bất cứ thứ gì có âm thanh như phân phối không. Nếu bạn có apt-get, hãy thử "dpkg -l | less" và làm điều tương tự. Và thử "ls -d / etc / * rel *" để xem liệu có bất kỳ tệp phát hành hoặc bất cứ điều gì trong / etc. Ồ, bạn cũng có thể thực hiện "find / -name lsb_release" chỉ trong trường hợp lsb_release không nằm trong đường dẫn của bạn.
dannysauer

apt-getkhông có trên hệ thống. Tôi không thấy bất cứ điều gì có thể nhận dạng với rpm -qa|less. ls -d /etc/*rel*đã làm việc. Tôi rồi nano /etc/system-release. Trong tập tin nó cho tôi biết rằng hệ điều hành là Amazon Linux AMI release 2011.02.1.1. Cảm ơn.
David

1
downvote vì lsb_releasekhông có sẵn trên amazon linux, điều này thường dẫn đến câu hỏi này được yêu cầu ... lsb_releaseyêu cầu một chuỗi dep lớn đi kèm redhat-lsb-corevà aws chọn rời khỏi đó - forum.aws.amazon.com/message.jspa?messageID = 519816
quan tâm vào

1
Tôi đã làm cho phần còn lại của câu trả lời rõ ràng hơn (mà một số người dường như không đọc) và bao gồm đầu ra thực tế từ Amazon Linux hiện tại 2.
dannysauer

7

Điều này làm việc cho tôi:

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

Chỉ cần một cái đầu lên. Tôi đang chạy Amazon Linux AMI 2011/09 và điều này không hoạt động nhưng các ý kiến ​​khác cat /usr/share/doc/system-release/ReleaseNotes.txtđã làm. Điều này có thể hoạt động trên các phiên bản mới hơn.
Mauvis Ledford

2

uname -a sẽ cung cấp cho bạn thông tin về Kernel, thời gian xây dựng và một số thông tin khác, bao gồm cả nhà cung cấp ...


1

Như bạn có thể thấy khi đăng nhập vào AMI EC2 Amazon Linux AMI:

"Xem / usr / share / doc / system-phát hành / để biết ghi chú phát hành mới nhất."

Vì vậy, ... chỉ cần gõ:

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

Điều này làm việc cho tôi trong Amazon Linux AMI 2011.09.
Mauvis Ledford
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.