Wie erhalte ich Informationen zum Amazon EC2-Instanzbetriebssystem?

33

Ich habe gerade eine EC2-Instanz unter Linux eingerichtet. Gibt es eine Möglichkeit, die Version / Distribution von Linux, die auf der Instanz ausgeführt wird, über das Terminal abzurufen?

David
quelle
uname -a sollte Ihnen Informationen über den Kernel, die Erstellungszeit und einige andere Informationen geben, einschließlich des Herstellers ... (mit freundlicher Genehmigung von Tiernan0)
soandos

Antworten:

31

Für Informationen zur Distribution:

cat /etc/issue

Für Kernel / Architektur (wie zuvor erwähnt):

uname -a
CJ Travis
quelle
cat / etc / issue hat funktioniert.
David
1
Nun, es sei denn, der Sysadmin fügt etwas anderes hinzu /etc/issue, da dies eine lokal verwaltete Datei ist, die vor der Anmeldung angezeigt wird und buchstäblich alles (oder nichts) sein kann. :) Zum Beispiel sagen meine Systeme derzeit "Systeme erfordern Autorisierung, nicht autorisierter Zugriff ist illegal". Wer sich überhaupt um die Sicherheit kümmert, legt wahrscheinlich nicht alle Informationen zur Betriebssystemidentifizierung in / etc / issue ab.
Dannysauer
@dannysauer wo sonst würdest du es hinstellen. Alle Informationen zu irgendetwas werden auf dem Speichergerät gespeichert. Manchmal sehe ich diese Informationen in einer ausführbaren Binärdatei eingebettet, die die Informationen ausdrucken kann, die sich jedoch in
Bezug
@ThorSummoner - Der Inhalt von / etc / issue wird vor der Anmeldeaufforderung angezeigt. Das ist das Sicherheitsproblem.
dannysauer
12

Der portable Befehl für Linux Standard Base-kompatible Distributionen (was so ziemlich alles populäre ist) ist lsb_release. Die Distribution kann mit "-i" bezogen werden und die Version stammt von "-r". Die Option "-s" unterdrückt die Namensspalte und zeigt nur den Wert an, und -a zeigt an, dass alles lsb_releaseüber das System bekannt ist. So zum Beispiel auf einem RHEL 5.5-System:

$ 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

Wenn Sie Red Hat, SuSE, Ubuntu, Debian oder etwas anderes verwenden, das von diesen abgeleitet ist (Fedora, CentOS, was auch immer), funktioniert dieser Befehl. Andernfalls müssen Sie einige distro-spezifische Informationen herausfinden. RedHat installiert beispielsweise erneut ein Paket mit dem Namen redhat-releaseund erstellt eine Datei in / 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)

So sieht es auf einem frisch bereitgestellten (2. Februar 2017) Amazon Linux 2-System aus - nachdem ich den Hostnamen zurückgesetzt habe:

[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 sollten Sie wirklich verwenden, lsb_releasewenn es verfügbar ist. Wenn Sie es nur visuell tun, lsb_release -aist es leicht zu merken und einigermaßen leicht zu lesen. Wenn dies jedoch keine Option ist, wird / etc / os-release auf einigen neueren Linux-Betriebssystemversionen wie oben beschrieben angegeben.

dannysauer
quelle
Ich habe deine erste Annäherung und erhalte folgende Fehlermeldung -bash: lsb_release: command not found. Ich habe auch Ihren zweiten Ansatz ausprobiert und kann nichts finden, was redhat erwähnt /etc. Irgendwelche anderen Vorschläge?
David
Überprüfen Sie zunächst, ob rpm und apt-get auf dem System vorhanden sind. laufen "welche rpm" und "welche apt-get". Wenn Sie rpm haben, geben Sie "rpm -qa | less" ein und prüfen Sie, ob sich dort etwas anhört, das wie eine Distribution klingt. Wenn Sie apt-get haben, versuchen Sie "dpkg -l | less" und machen Sie dasselbe. Versuchen Sie "ls -d / etc / * rel *", um festzustellen, ob sich in / etc eine Release-Datei oder etwas anderes befindet. Oh, Sie könnten auch ein "find / -name lsb_release" ausführen, falls lsb_release nicht in Ihrem Pfad ist.
dannysauer
apt-getist nicht auf dem System. Ich sehe nichts mit dem ich mich identifizieren kann rpm -qa|less. ls -d /etc/*rel*hat funktioniert. Ich dann nano /etc/system-release. In der Datei steht, dass das Betriebssystem ist Amazon Linux AMI release 2011.02.1.1. Vielen Dank.
David
1
da downvote lsb_releaseauf amazon linux nicht verfügbar ist, was im allgemeinen dazu führt, dass diese frage gestellt wird lsb_release, ist eine große dep-kette erforderlich redhat-lsb-core, die mitgeliefert wird,
begeistert vom
1
Ich habe den Rest der Antwort klarer
formuliert
7

Das hat bei mir funktioniert:

# 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
quelle
Nur ein Kopf hoch. Ich verwende Amazon Linux AMI 2011.09 und das hat nicht funktioniert, aber andere Kommentare haben es cat /usr/share/doc/system-release/ReleaseNotes.txtgetan. Dies funktioniert wahrscheinlich bei neueren Editionen.
Mauvis Ledford
2

uname -a sollten Sie die Informationen über den Kernel, die Build-Zeit und einige andere Informationen, einschließlich Hersteller geben ...

TiernanO
quelle
1

Wie Sie sehen können, wenn Sie sich bei einem AMI EC2 Amazon Linux AMI anmelden:

"Aktuelle Versionshinweise finden Sie unter / usr / share / doc / system-release /."

Also ... tippe einfach:

cat /usr/share/doc/system-release/ReleaseNotes.txt
frommelmak
quelle
Das hat bei mir geklappt Amazon Linux AMI 2011.09.
Mauvis Ledford