有没有办法确定 Amazon AWS EC2 实例运行了多长时间



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

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

以前有人处理过这个问题吗?

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

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

我注意到你的问题上有 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} 将为您提供以秒为单位的空闲时间

最新更新