我正在寻找一种以编程方式杀死长时间运行的AWS EC2实例的方法。
我做了一些谷歌搜索,但我似乎没有找到一种方法来查找实例运行了多长时间,以便我可以编写一个脚本来删除运行时间超过一定时间的实例周期...
之前有人处理过此事吗?
答案 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
关联。