用于检查创建的AMI是否可用的脚本,

时间:2018-05-31 04:44:00

标签: linux bash shell amazon-web-services scripting

我正在尝试编写一个脚本,我们将备份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分钟甚至更长时间。

2 个答案:

答案 0 :(得分:0)

你可以使用无限循环

while true
   do
       if /usr/bin/aws ec2 describe-images --image-ids=$AMI_ID --query "Images[*].{st:State}" |  grep -e "available" | wc -l'; then
          break
       fi
   esac
done

答案 1 :(得分:0)

您也可以尝试以下方法:[根据需要更新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