linux - 检查创建的 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 分钟,在某些情况下甚至更长时间。
解决方案
您也可以尝试如下:[根据需要更新 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
推荐阅读
- delphi - 示例 Firebird 数据库在哪里?
- php - 如何在网站中放置控制箭头?
- php - SilverStripe 4 - 没有文件上传/通过 AJAX 写入数据库
- c - 如何创建一个指向具有不同数量参数的函数的函数指针?
- python - 通过邮箱python进行进程间通信
- database - 如何为一个表设置两个外键,并且这些外键引用另一个表中的相同主键?
- image-processing - 行人检测自定义支持向量机
- vue.js - 从 var 和 string 绑定一个类?
- r - R计数每行的出现非常慢
- java - 在 java 中读取 HttpServletRequest 请求正文