コピーによって仮想マシンミラーを作成するスクリプトをバックアップ

1721 ワード

#!/bin/sh



machine=$1

mac=$2

ip=$3



if [ -z "$machine" ]; then

	echo "usage: sh $0 machine mac ip"

	exit

fi



source_bytes=`fdisk -ucl /dev/vbd/test00|grep test00|grep -Eo "[0-9]+ bytes"|cut -d" " -f1`

source_M=$(($source_bytes/1024/1024))



echo "creating new logic volumn $machine"

lvcreate -L ${source_M}M -n $machine vbd



echo "copy data from lv test00"

dd if=/dev/vbd/test00 of=/dev/vbd/$machine bs=1M count=$source_M



echo "mount new created logic volumn"

kpartx -av /dev/vbd/$machine



echo "scan volumn group"

vgscan



echo "rename volumn group to $machine"

vgrename test00 $machine



echo "load volumn group $machine"

vgchange -ay $machine



echo "mount logic volumn lv_root"

mount /dev/$machine/lv_root /mnt



echo "modify fstab to new volumn group name $machine"

sed -i "s/test00/$machine/g" /mnt/etc/fstab 

sed -i "s/test00/$machine/g" /mnt/etc/sysconfig/network



if [ -n "$mac" ]; then

	sed -i "s/00:16:3E:38:01:E6/$mac/g" /mnt/etc/sysconfig/network-scripts/ifcfg-eth0

fi



if [ -n "$ip" ]; then

	sed -i "s/192.168.1.230/$ip/g" /mnt/etc/sysconfig/network-scripts/ifcfg-eth0

fi



echo "umount lv_root"

umount /mnt



echo "mount first partition of vbd-$machine"

mount /dev/mapper/vbd-${machine}p1 /mnt



echo "change menu.lst to $machine"

sed -i "s/test00/$machine/g" /mnt/grub/menu.lst



echo "umount vbd-$machine"

umount /mnt



echo "disable vg"

vgchange -an $machine



echo "disable $machine"

kpartx -d /dev/vbd/$machine