首页 > 解决方案 > 检查创建的 AMI 是否可用的脚本,

问题描述

我正在尝试编写一个脚本,我们在其中备份 AMI(亚马逊机器映像),一旦完成,它的状态显示为“可用”,而不是通过电子邮件通知我们。

我已经涵盖了第一部分,但第二部分有问题,即不断检查图像何时可用并给我们发送电子邮件。要检查可用状态,我使用以下命令,

/usr/bin/aws ec2 describe-images --image-ids=$AMI_ID --query "Images[*].{st:State}" |  grep -e "available" | wc -l'

这将在 AMI 可用时将输出返回为 1,但在创建循环时遇到问题,该循环连续运行上述命令以检查输出是否等于 1。

请帮助弄清楚这个循环。

PS IMAGE 创建需要 10 到 30 分钟,在某些情况下甚至更长时间。

标签: linuxbashshellamazon-web-servicesscripting

解决方案


您也可以尝试如下:[根据需要更新 sleepTime]

请注意,我已--executable-users self在您的命令中添加了标志以列出您可用的图像。

sleepTime=60 # sleepTime in seconds
while true ; do
  count=$(aws ec2 describe-images --executable-users self --query "Images[*].{st:State}" |  grep -e "available" | wc -l)
  if [[ $count == 1 ]] ; then
     echo "Image is ready... Add your emailing code here"
     exit 0
  fi
  sleep $sleepTime;
  printf "." 
done

推荐阅读