• OpenNebula管理ESXi修改的一些脚本


    1.重建DATABLOCK并挂载


    在执行持久化DATABLOCK挂在之前执行原DATABLOCK的删除和重建工作。

    …………………………………………………

    SRC_PATH="${DST_DS_PATH}${SRC_ARG_PATH##$SRC_DS_PATH}"

    #-------------------------------------------------------------------------------

    # Make by chensh at 131129

    #-------------------------------------------------------------------------------


    USER=$(whoami)

    GROUP=$(groups)


    if [ -f "$SRC_PATH" ]; then


    SIZE=$(ls -lh $SRC_PATH | cut -d " " -f5)

    rm -rf $SRC_PATH

    mkdir -p $SRC_PATH


    CD_CMD="cd $SRC_PATH"

    CREATE_IMAGE="/sbin/vmkfstools -c ${SIZE} -d thin -a lsilogic disk.vmdk"

    CHOWN_CMD="sudo chown -R $USER:$GROUP $SRC_PATH"


    MKSCRIPT=$(cat <<EOF

    $CD_CMD

    $CREATE_IMAGE

    EOF

    )


    ssh $DST_HOST "$MKSCRIPT"


    $CHOWN_CMD


    fi

    #-------------------------------------------------------------------------------

    # Create DST path

    #-------------------------------------------------------------------------------

    ………………………………

    ********************************************************************

    2.文件夹类型的数据盘删除脚本

    [oneadmin@nebula ~]$ pwd

    /srv/cloud/one

    [oneadmin@nebula ~]$ more bin/onedelete 

    #!/bin/bash

    #-------------------------------------------------------------------------------

    # Make by chensh at 131202

    #-------------------------------------------------------------------------------

    IMAGE_ID=$1


    CODE0="0:OK,Image ID has been deleted."

    CODE1="1:Error,Image ID not exist."

    CODE2="2:Error,Error image ID type."

    CODE3="3:Error,Not input image ID."

    CODE4="4:Error,Image is used."


    HELP=`cat << EOF

    Help Information:

    Please use "oneimage list" get image ID and Execute "onedelete ID" delete it;

    For example ----> onedelete 123

    ----------------------------------

    $CODE0

    $CODE1

    $CODE2

    $CODE3

    $CODE4

    ----------------------------------

    EOF

    `

    if [ -n "$IMAGE_ID" ]; then


            if [ $IMAGE_ID = "--help" ]; then


                    echo "$HELP"


                    exit 0


            else


                    ID_TYPE=`echo $IMAGE_ID | awk '{print($0~/^([0-9])+$/)?"INT":"NON_INT"}'`


                            if [ $ID_TYPE = "INT" ]; then


                                    IMAGE_SOURCE=$(oneimage show  $IMAGE_ID | grep SOURCE | awk -F : '{print $2}')


                                            if [ -n "$IMAGE_SOURCE" ]; then


                                                    IMAGE_STATE=$(oneimage show  $IMAGE_ID | grep STATE | awk -F : '{print $2}')


                                                            if [ $IMAGE_STATE = "used"  ]; then


                                                                    echo $CODE4


                                                                    exit 0


                                                            else


                                                                    rm -rf $IMAGE_SOURCE && oneimage delete $IMAGE_ID && echo "$CODE0"


                                                            fi


                                            else


                                                    echo "$CODE1"


                                            fi


                            else


                                    echo "$CODE2"


                            fi

            fi


    else


    echo "$CODE3"


    fi

    ********************************************************************

    3.添加临时磁盘的脚本

    [oneadmin@nebula shared]$ pwd

    /srv/cloud/one/var/remotes/tm/shared

    [oneadmin@nebula shared]$ vi mkimage

    ………………………………

    #-------------------------------------------------------------------------------

    # Make the new image (file-based)

    #-------------------------------------------------------------------------------


    MKDIR_CMD=`mkdir -p $DST_PATH`


    CD_CMD="cd $DST_PATH"


    CREATE_IMAGE="/sbin/vmkfstools -c ${SIZE}M -d thin -a lsilogic disk.vmdk"


    MKSCRIPT=$(cat <<EOF

    $CD_CMD

    $CREATE_IMAGE

    EOF

    )


    $MKDIR_CMD

    ssh $DST_HOST "$MKSCRIPT"


    exit 0

    ********************************************************************

    4.创建qcow2格式的磁盘,大小以10G递增

    [oneadmin@opennebula chensh]$ more disk_create131114.sh 

    #!/bin/bash


    DIR="/srv/cloud/one/images"


    for ((i=1;i<=100;i++));

    do 

      qemu-img create -f qcow2 data_disk-${i}0G.qcow2 ${i}0G

      

      oneimage create -d 1 --name data_disk-${i}0G --path $DIR/data_disk-${i}0G.qcow2 --prefix vd --type DATABLOCK --fstype ext4 --driver qcow2

      

    echo  "Create data_disk-${i}0G.qcow2 ------> Finish ${i}%"


    done


    [oneadmin@opennebula chensh]$ 


    ********************************************************************


  • 相关阅读:
    shell脚本 加密备份MySQL数据库
    C#在Linux下获取文件夹信息(所在磁盘总大小,使用空间,已用空间,使用率)
    bootstrap--- 两种bootstrap multiselect组件大比拼
    C# 文件重命名
    C#中一些常用的正则表达式
    C# 文件压缩加解密
    Python 由__dict__和dir()引发的一些思考
    python3随机生成中文字符
    Django自定义过滤器中is_safe和need_autoescape两个参数的理解
    Python格式化字符串--format
  • 原文地址:https://www.cnblogs.com/myiaas/p/4161340.html
Copyright © 2020-2023  润新知