2016-11-18 80 views
0

我正在写一个bash脚本来发送ec2实例的用户数据,我将动态启动它。该脚本需要使用实例IP,在实例启动并运行该脚本之前我没有这个实例。 因此脚本应该是这样的在bash脚本中使用公共ip

"#!/bin/bash 
curl -X POST .....blablabla......... 
{ 
    "serverIp": HERE I NEED THE CURRENT INSTANCE IP, 
}' 

我知道,这样做卷曲http://127.0.0.1/latest/meta-data/public-ipv4你的IP,但考虑到其他因素,我无法使用HTTP调用本身。

是否有任何简单的方法从bash脚本中检索ip?

谢谢!

+0

请参见:[在shell脚本中查找公共IP地址](http://serverfault.com/q/89114/234750)(23回答) – Cyrus

+0

是的,但只是想看到IP,我需要在脚本中使用它。 –

+0

如果我例如写“#/斌/庆典 卷曲-X POST ..... blablabla ......... !{ “SERVERIP”:卷曲ifconfig.me, }” 它不会工作 –

回答

0

随着挖:

#!/bin/bash 

serverIp=$(dig +time=1 +tries=1 +retry=1 +short myip.opendns.com @resolver1.opendns.com) 
echo $serverIp 
2

插入电话呼出卷曲:

#!/bin/bash 
curl -X POST .....blablabla......... 
{ 
    "serverIp": `curl -s http://169.254.169.254/latest/meta-data/public-ipv4`, 
}' 
+0

这不适合我,它didn '不承认',但仍然有帮助,因为我用它把它带到外面的变量 –