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

Ayu*_*pta 5 amazon-ec2 amazon-ebs amazon-web-services

Amazon 为EC2实例提供实例存储.如果您使用自己的AMI,则不会自动为您格式化或安装这些AMI.您需要手动格式化并装入它们.

此处列出了可用设备,并根据实例类型而有所不同.例如,m1.small将具有与c1.xlarge不同的可用实例存储设备.

我正在寻找一个脚本

  1. 检测实例类型.也许通过使用 curl -s http://169.254.169.254/latest/meta-data/instance-type
  2. 格式化并安装可用于该实例类型但尚未格式化/装入的所有设备.

可能?完成了?有它?

Ayu*_*pta 8

所以,这就是我为此而建的.

#!/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
Run Code Online (Sandbox Code Playgroud)