有没有办法确定亚马逊AWS EC2实例运行了多长时间?

时间:2016-03-15 18:21:28

标签: python amazon-web-services amazon-ec2 cron aws-cli

我正在寻找一种以编程方式杀死长时间运行的AWS EC2实例的方法。

我做了一些谷歌搜索,但我似乎没有找到一种方法来查找实例运行了多长时间,以便我可以编写一个脚本来删除运行时间超过一定时间的实例周期...

之前有人处理过此事吗?

2 个答案:

答案 0 :(得分:1)

我注意到你问题上的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}会在几秒钟内为您提供空闲时间

答案 1 :(得分:0)

EC2服务为每个实例存储LaunchTime值,您可以通过DescribeInstances调用找到该值。但是,如果您停止实例然后重新启动它,则此值将使用新的启动时间进行更新,因此它不是确定实例运行多长时间的可靠方法,因为它的原始启动时间

我能想到确定原始启动时间的唯一方法是使用CloudTrail(假设您为帐户启用了它)。您可以在CloudTrail中搜索原始启动事件,这将与EventTime关联。