簡體   English   中英

如何在cron啟動的bash腳本中獲取EC2實例的(私有)IP?

[英]How to get (Private) IP of EC2 instance in bash script launched by cron?

我目前正在通過 cron @reboot

ec2_ip=$(echo $HOSTNAME | grep -Eo '[[:digit:]]+-[[:digit:]]+-[[:digit:]]+-[[:digit:]]+' | head -n 1 | tr '-' '.')

這工作正常但不是很優雅。 有沒有更簡單的方法來獲取EC2實例的私有IP? 也許還有它的公共 IP?

您可以為此使用元數據服務。

私人 ip:

ec2_private_ip = $(curl http://169.254.169.254/latest/meta-data/local-ipv4)

公眾號 ip:

ec2_public_ip = $(curl http://169.254.169.254/latest/meta-data/public-ipv4)

如果您有權訪問aws cli並知道實例 ID,則可以通過以下方式獲取私有地址 ip:

aws ec2 describe-instances --instance-ids i-02c55bf68498143b3  --query 'Reservations[0].Instances[0].NetworkInterfaces[0].PrivateIpAddress' --output text

或公眾號 ip 地址:

aws ec2 describe-instances --instance-ids i-02c55bf68498143b3 --query 'Reservations[0].Instances[0].PublicIpAddress' --output text 

(盡管這是否更優雅是有爭議的。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM