如何获取Amazon EC2实例操作系统信息?


33

我只是设置了一个运行Linux的EC2实例。是否可以通过终端获取实例上运行的Linux的版本/发行版?


uname -a应该为您提供有关内核,构建时间以及一些其他信息的信息,包括供应商...(由Tiernan0提供)
soandos 2011年

Answers:


31

有关发行信息:

cat /etc/issue

对于内核/体系结构(如前所述):

uname -a

猫/ etc / issue工作正常。
大卫

1
好吧,除非sysadmin将其他任何内容放入中/etc/issue,否则这是本地管理的文件,该文件在登录之前显示,并且实际上可以是任何内容(或什么也没有)。:)例如,我的系统当前在其中说“系统需要授权,未经授权的访问是非法的”。根本不关心安全性的任何人都可能不会将所有操作系统标识信息都放在/ etc / issue中。
dannysauer

@dannysauer您还会把它放在哪里。有关任何内容的所有信息都存储在存储设备上。有时我会看到此信息嵌入可打印信息的二进制可执行文件中,但考虑到任何文本文件和任何可执行二进制文件都共享基于相同文件系统的保护
因此

@ThorSummoner-/ etc / issue的内容显示登录提示之前。这就是安全性问题。
dannysauer

12

Linux标准库兼容发行版的可移植命令(几乎所有流行的命令)都是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)

这是在新配置(2017年2月2日)的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 OS版本中按上述方式填充。


我是您的第一种方法,并得到以下错误-bash: lsb_release: command not found。我也尝试了您的第二种方法,在中找不到任何提及redhat的内容/etc。还有其他建议吗?
大卫,

首先检查系统上是否有rpm和apt-get;运行“哪个rpm”和“哪个apt-get”。如果您有rpm,请执行“ rpm -qa | less”,看看那里是否有听起来像分布的声音。如果您有apt-get,请尝试“ dpkg -l | less”并执行相同的操作。并尝试“ ls -d / etc / * rel *”以查看/ etc中是否有任何发行文件或任何文件。哦,您也可以执行“ find / -name lsb_release”,以防lsb_release不在您的路径中。
丹尼绍

apt-get不在系统上。我看不到任何可识别的东西rpm -qa|lessls -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做了。这可能适用于较新的版本。
Mauvis Ledford

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
Mauvis Ledford
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.