嗨大家我需要做一个脚本,它复制了我运行的aws区域AMI的ips,复制这些IP后将它们放入文本文件里面。如果关闭实例,该IP将被删除,文本文件将自动更改为实时,我需要在所有区域运行,所以我拥有的任何实例&#34 ; X"运行AMI,脚本会找到它,如果它正在运行则复制其IP保留它,如果它们切换到关闭模式,则将其从文件中删除。
将IP堆叠在像
这样的文本中55.555.555.55
66.123.545.54
.....
.....
实时性。
我从未真正使用过aws cli,我知道这是可行的。
答案 0 :(得分:1)
在AWS CLI中使用describe-instances命令。您需要的所有信息(AMI,实例状态,IP地址)将包含在对该命令的响应中。请注意,您必须为每个区域运行一次describe-instances
。 (运行CLI时设置--region
标志以设置区域。)
您可以解析CLI的JSON输出,然后将所需信息写入文本文件。
答案 1 :(得分:1)
此命令使用aws cli" describe-instances"带有过滤器的命令,仅用于正在运行的实例。
这会输出很多数据,包括" PublicIp"领域。 sed
命令仅删除该行的IP地址,uniq
删除重复项
aws ec2 describe-instances --filters 'Name=instance-state-name,Values=running' | sed -n 's/^.*"PublicIp": "\([0-9\.]*\)\",/\1/p'| uniq
有关aws cli describe instances命令的详细信息,请参阅http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html,包括您可能要应用的其他过滤器