我正在寻找一种以编程方式杀死长时间运行的AWS EC2实例的方法。有没有办法确定Amazon AWS EC2实例运行多久?
我做了一些搜索,但我似乎找不到一种方法来查找实例已运行多久,以便我可以编写脚本来删除运行时间超过某个特定的实例时间段...
有人处理过这个吗?
我正在寻找一种以编程方式杀死长时间运行的AWS EC2实例的方法。有没有办法确定Amazon AWS EC2实例运行多久?
我做了一些搜索,但我似乎找不到一种方法来查找实例已运行多久,以便我可以编写脚本来删除运行时间超过某个特定的实例时间段...
有人处理过这个吗?
我注意到你的问题cron的标签,所以也许你可以使用这个bash脚本:
UPTIME=`uptime | awk {print $3}`
# Reboot if uptime longer than 180 days (6 months)
if [ $UPTIME -gt 180 ]
then
# Whatever you want to do here...
fi
如果你想更精细的控制,你也可以从/proc/uptime
使用这样的事情在数秒内获得正常运行时间:
UPTIME=$(awk -F. '{print $1}' /proc/uptime)
注意{print $2}
会给你在几秒钟内
EC2服务为每个实例存储一个LaunchTime
值,您可以通过执行DescribeInstances
调用找到该值。但是,如果您停止实例并重新启动该实例,则此值将随新启动时间一起更新,因此确定实例自启动以来运行的时间并不是一种可靠的方法。
我能想到的确定原始启动时间的唯一方法就是使用CloudTrail(假设您已启用了您的帐户)。您可以在原始启动事件中搜索CloudTrail,并将其与EventTime
关联。
AWS的Load Balancer应该有配置选项。你用它吗? – lucasnadalutti
检查EC2实例元数据中的启动时间属性。 –
@MarkB,谢谢你,我发现这个:http://stackoverflow.com/questions/18916135/determining-amazon-ec2-instance-creation-date-time – Becks