Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 用于格式化和装载所有可用实例存储设备的脚本_Amazon Ec2_Amazon Web Services_Amazon Ebs - Fatal编程技术网

Amazon ec2 用于格式化和装载所有可用实例存储设备的脚本

Amazon ec2 用于格式化和装载所有可用实例存储设备的脚本,amazon-ec2,amazon-web-services,amazon-ebs,Amazon Ec2,Amazon Web Services,Amazon Ebs,Amazon支持EC2实例。如果您使用自己的AMI,这些AMI不会自动格式化或装载。您需要手动格式化并装载它们 可用的设备是可用的,并且根据实例的类型而有所不同。例如,m1.small将具有与c1.xlarge不同的可用实例存储设备 我在找一个剧本 检测实例类型。也许通过使用 curl-shttp://169.254.169.254/latest/meta-data/instance-type 格式化并装载该实例类型可用但尚未格式化/装载的所有设备 可能吗?完成了吗?有了吗?所以,这里是我为此而

Amazon支持EC2实例。如果您使用自己的AMI,这些AMI不会自动格式化或装载。您需要手动格式化并装载它们

可用的设备是可用的,并且根据实例的类型而有所不同。例如,m1.small将具有与c1.xlarge不同的可用实例存储设备

我在找一个剧本

  • 检测实例类型。也许通过使用
    curl-shttp://169.254.169.254/latest/meta-data/instance-type
  • 格式化并装载该实例类型可用但尚未格式化/装载的所有设备

  • 可能吗?完成了吗?有了吗?

    所以,这里是我为此而构建的

    #!/bin/bash
    
    # This script formats and mounts all available Instance Store devices
    
    ##### Variables
    devices=( )
    
    ##### Functions
    
    function add_device
    {
        devices=( "${devices[@]}" $1 )
    }
    
    function check_device
    {
        if [ -e /dev/$1 ]; then
            add_device $1
        fi
    }
    
    function check_devices
    {
        check_device sda2
        check_device sda3
        check_device sdb
        check_device sdc
        check_device sdd
        check_device sde
    }
    
    function print_devices
    {
        for device in "${devices[@]}"
        do
            echo Found device $device
        done
    }
    
    function do_mount
    {
        echo Mounting device $1 on $2
    fdisk $1 << EOF
    n
    p
    1
    
    
    
    w
    EOF
    # format!
    mkfs -t xfs -f $1
    
    mkdir $2
    mount $1 $2
    
    echo "$1   $2      xfs     defaults          0 0" >> /etc/fstab
    
    }
    
    function mount_devices
    {
        for (( i = 0 ; i < ${#devices[@]} ; i++ ))
        do
            mountTarget=/mnt
            if [ $i -gt 0 ]; then
                mountTarget=/mnt$(($i+1))
            fi
            do_mount /dev/${devices[$i]} $mountTarget
        done
    }
    
    
    ##### Main
    
    check_devices
    print_devices
    mount_devices
    
    #/bin/bash
    #此脚本格式化并装载所有可用的实例存储设备
    #####变数
    设备=()
    #####功能
    功能添加设备
    {
    设备=(“${devices[@]}”$1)
    }
    功能检查装置
    {
    如果[-e/dev/$1];则
    添加设备$1
    fi
    }
    功能检查装置
    {
    检查设备sda2
    检查设备sda3
    检查设备sdb
    检查设备sdc
    检查设备sdd
    检查设备sde
    }
    功能打印设备
    {
    对于“${devices[@]}”中的设备
    做
    echo找到设备$device
    完成
    }
    函数do_mount
    {
    回声安装装置$1对$2
    fdisk$1>/etc/fstab
    }
    功能挂载装置
    {
    对于((i=0;i<${设备[@]};i++)
    做
    mountTarget=/mnt
    如果[$i-gt 0];则
    mountTarget=/mnt$($i+1))
    fi
    do_mount/dev/${devices[$i]}$mountTarget
    完成
    }
    #####主要
    检查设备
    打印设备
    挂载设备
    
    #!/bin/bash
    #SETUP RAID0
    checkAllDevices()
    {
        devicemount=/ephemeral
        logicalname=/dev/md0
        deviceslist=( '/dev/xvdb' '/dev/xvdc' '/dev/xvdd' '/dev/xvde' )
        for device in ${deviceslist[@]}; do
            if ([ -b $device ]) then
                aDevices=( "${aDevices[@]}" $device )
            fi
        done
        if [ "${#aDevices[@]}" -gt '1' ];then
            yes | mdadm --create $logicalname --level=0 -c256 --raid-devices=${#aDevices[@]} ${aDevices[@]}
            echo \'DEVICE ${aDevices[@]}\' > /etc/mdadm.conf
            mdadm --detail --scan >> /etc/mdadm.conf
            blockdev --setra 65536 $logicalname
            mkfs.xfs -f $logicalname > /dev/null
            mkdir -p $devicemount
            mount -t xfs -o noatime $logicalname $devicemount
            if [ ! -f /etc/fstab.backup ]; then
                cp -rP /etc/fstab /etc/fstab.backup
                echo "$logicalname $devicemount    xfs  defaults  0 0" >> /etc/fstab
            fi        
        else
            echo "Required more than one devices"
        fi
    }
    
    #MAIN FUNCTION 
    aDevices=()
    checkAllDevices