首页 > 解决方案 > 等待命令执行和状态更改的 Shell 脚本

问题描述

我正在创建一个 shell 脚本来备份 openstack cinder 卷以浏览图像,如下所示。

test1 是脚本中的卷名。

#!/bin/bash

DATE=`date +%Y-%m-%d`
BACKUPDIR=/mnt/osbk/
declare -a VMS=(
    test1
)
source /root/admin-openrc
echo $DATE `date` Starting Backup process of images
for vmname in "${VMS[@]}"
do
    echo Backing up $vmname
    echo cinder upload-to-image ${vmname} ${vmname}-vol-bkp --disk-format qcow2 --container-format bare --force True
    cinder upload-to-image ${vmname} ${vmname}-vol-bkp --disk-format qcow2 --container-format bare --force True
    echo glance image-download ${vmname}-vol-bkp --file $BACKUPDIR/${vmname}-vol-bkp-${DATE}.qcow2
    glance --os-image-api-version 1  image-download ${vmname}-vol-bkp --file $BACKUPDIR/${vmname}-vol-bkp-${DATE}.qcow2
done

输出如下所示:

2018-12-29 Sat Dec 29 16:37:45 IST 2018 Starting Backup process of images
Backing up test1
cinder upload-to-image test1 test1-vol-bkp --disk-format qcow2 --container-format bare --force True
+---------------------+--------------------------------------+
| Property            | Value                                |
+---------------------+--------------------------------------+
| container_format    | bare                                 |
| disk_format         | qcow2                                |
| display_description |                                      |
| id                  | 26c90209-8151-4136-b5de-f2ad7419b100 |
| image_id            | 01e88175-a3fa-4354-8c0f-e4fafd9c9fc3 |
| image_name          | test1-vol-bkp                        |
| is_public           | False                                |
| protected           | False                                |
| size                | 2                                    |
| status              | uploading                            |
| updated_at          | 2018-12-29T11:07:00.000000           |
| volume_type         | None                                 |
+---------------------+--------------------------------------+
glance image-download test1-vol-bkp --file /mnt/osbk//test1-vol-bkp-2018-12-29.qcow2
404 Not Found
The resource could not be found.
Image 01e88175-a3fa-4354-8c0f-e4fafd9c9fc3 is not active (HTTP 404)

从上面的输出中,状态正在上传...

我需要让我的脚本等待或检查卷更改为 Active 的状态,然后只需要运行 Glance 图像下载命令。

我究竟做错了什么?

标签: bashshellopenstackopenstack-cinder

解决方案


推荐阅读