如何查找运行中EC2实例的操作系统?含AWS CLI方法及简化情况问询
如何识别EC2实例的操作系统(含AWS CLI实操方法)
我太懂你这种找不到明确OS属性的困惑了——早期AWS EC2确实没把操作系统信息直接暴露在实例的基础属性里,不过现在AWS已经做了不少优化,识别起来方便多了,下面给你详细拆解:
一、AWS现在简化的OS识别方式
- EC2控制台直观查看:现在登录EC2控制台后,在实例列表里直接就能找到「平台/操作系统」列(如果没显示,右键列标题勾选就行),像Amazon Linux、Ubuntu、Windows Server这类主流系统都会直接标注,不用再翻一堆零散属性了。
- 通过AMI溯源:每个EC2实例都是基于AMI创建的,你可以点击实例详情里的AMI ID跳转到对应AMI的页面,AMI的名称和描述里一定会明确写清楚操作系统(比如
amzn2-ami-hvm-2.0.20240520.0-x86_64-gp2一看就知道是Amazon Linux 2),这也是最可靠的识别方式之一。
二、用AWS CLI查询EC2实例的操作系统
这里给你几个实用的CLI命令,按需选用:
1. 基础查询:获取实例的平台标识与AMI ID
用describe-instances命令过滤关键信息,快速拿到基础线索:
aws ec2 describe-instances --instance-ids <你的实例ID> --query 'Reservations[*].Instances[*].[InstanceId, Platform, ImageId]' --output table
- 说明:Windows实例的
Platform字段会显示windows,Linux类实例这个字段可能为空,但结合返回的ImageId去查AMI信息就能明确OS。
2. 精准查询:通过AMI ID获取操作系统详情
拿到上面的ImageId后,用describe-images命令直接查AMI的核心信息,名称和描述里会明确标注OS:
aws ec2 describe-images --image-ids <你的AMI ID> --query 'Images[*].[Name, Description]' --output table
3. 批量查询:一次性获取所有实例的OS信息
如果要批量查多个实例,这个命令可以把实例ID、平台和AMI名称关联起来(需要提前安装jq工具处理JSON):
aws ec2 describe-instances --query 'Reservations[*].Instances[*].{ID:InstanceId, Platform:Platform, AMI:ImageId}' --output json | jq -r '.[] | .[] | [.ID, .Platform, (aws ec2 describe-images --image-ids .AMI --query "Images[0].Name" --output text)] | @tsv'
要是没装jq,也可以分两步:先导出所有实例的ID和AMI ID,再逐个查询AMI的名称。
补充小技巧
如果是自定义AMI或者小众操作系统,上面的方法可能不够,这时候可以登录实例直接查看:Linux系统用cat /etc/os-release,Windows系统用systeminfo命令,就能拿到最准确的OS版本信息。
内容的提问来源于stack exchange,提问作者Alwyn - Numino Labs
相关产品推荐
相关产品推荐

