Amazon ec2 用于格式化和装载所有可用实例存储设备的脚本
Amazon支持EC2实例。如果您使用自己的AMI,这些AMI不会自动格式化或装载。您需要手动格式化并装载它们 可用的设备是可用的,并且根据实例的类型而有所不同。例如,m1.small将具有与c1.xlarge不同的可用实例存储设备 我在找一个剧本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 格式化并装载该实例类型可用但尚未格式化/装载的所有设备 可能吗?完成了吗?有了吗?所以,这里是我为此而
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