Script to Format and Mount all available instance store devices

…衆ロ難τιáo~ 提交于 2019-12-03 15:40:47

So, here is what I built for this.

#!/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
#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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!