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

Bec*_*cks 6 python cron amazon-ec2 amazon-web-services aws-cli

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

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

以前有人处理过这个吗?

gar*_*aat 5

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

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


avi*_*vip 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
Run Code Online (Sandbox Code Playgroud)

如果您想要更精细的控制,您还可以/proc/uptime使用以下方法在几秒钟内获得正常运行时间:

UPTIME=$(awk -F. '{print $1}' /proc/uptime)

注意 {print $2}将为您提供以秒为单位的空闲时间