繁体   English   中英

列出 EC2 实例的公有 IP 地址

[英]List public IP addresses of EC2 instances

我想使用 Bash 列出我的 EC2 实例的公共 IP 地址,用分隔符(空格或换行符)分隔。

我尝试使用aws ec2 describe-instances | jq将输出通过管道传输到jq aws ec2 describe-instances | jq aws ec2 describe-instances | jq ,但似乎不能仅隔离 IP 地址。

这可以单独由aws完成,为jq指定参数,还是完全其他的东西?

直接从aws cli

aws ec2 describe-instances \
  --query "Reservations[*].Instances[*].PublicIpAddress" \
  --output=text
  • 过滤正在运行的实例(如果不需要,可以删除该部分)
  • 查询每个 PublicIPaddress 和 Name Tag,在未设置 Name 时处理
aws ec2 describe-instances \
  --filter "Name=instance-state-name,Values=running" \
  --query "Reservations[*].Instances[*].[PublicIpAddress, Tags[?Key=='Name'].Value|[0]]" \
  --output text

以下命令将列出所有正在运行的 EC2 实例的 IP 地址

aws ec2 describe-instances | grep PublicIpAddress | grep -o -P "\d+\.\d+\.\d+\.\d+" | grep -v '^10\.'

希望能解答您的疑问...

但这可以在没有关于访问的所有错误的情况下工作:

wget -qO- http://instance-data/latest/meta-data/public-ipv4/|grep .

您可以使用实例元数据,以便从 ec2 实例运行以下命令:

curl http://169.254.169.254/latest/meta-data/public-ipv4

它将为您提供实例的公共 IP。 如果你想要私有IP,你将运行

curl http://169.254.169.254/latest/meta-data/local-ipv4
aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"

参考: http : //docs.aws.amazon.com/cli/latest/userguide/controlling-output.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM