Procházet zdrojové kódy

añado getopt al control de parametros de entrada

pull/1/head
pinkfeet před 7 roky
rodič
revize
d37d862ea7
1 změnil soubory, kde provedl 32 přidání a 14 odebrání
  1. +32
    -14
      zonemigrate.sh

+ 32
- 14
zonemigrate.sh Zobrazit soubor

@@ -1,13 +1,31 @@
#!/usr/bin/bash #!/usr/bin/bash


if [ "$#" -ne 2 ]; then
echo "Illegal number of parameters"
echo "Usage: $0 {UUID} {DESTINYNODE}"
usage()
{
echo "Usage: $0 -z UUID -h hostname" >&2
exit 1 exit 1
fi
}


UUID=$1
NODODESTINO=$2
while getopts "z:h:" opt;
do
case "$opt" in
z)
UUID=$OPTARG
;;
h)
HOSTNAME=$OPTARG
;;
*)
usage
;;
esac
done

shift $((OPTIND-1))

if [ -z "${UUID}" ] || [ -h "${HOSTNAME}" ]; then
usage
fi


KEYFILE="/usbkey/ssh/id_rsa" KEYFILE="/usbkey/ssh/id_rsa"
DESTINYPORT="2221" DESTINYPORT="2221"
@@ -27,9 +45,9 @@ fi
snapshot() snapshot()
{ {
zfs snapshot $1@`date +%Y%m%d` zfs snapshot $1@`date +%Y%m%d`
zfs send $1@`date +%Y%m%d` | $SSH $NODODESTINO zfs receive $1
zfs send $1@`date +%Y%m%d` | $SSH $HOSTNAME zfs receive $1
zfs snapshot $1@`date +%Y%m%d`.incremental zfs snapshot $1@`date +%Y%m%d`.incremental
zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $NODODESTINO zfs receive $1
zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $HOSTNAME zfs receive $1
} }


# capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg
@@ -62,18 +80,18 @@ fi
echo "exportamos configuracion..." echo "exportamos configuracion..."


zonecfg -z ${UUID} export > $CFG/${UUID}.cfg zonecfg -z ${UUID} export > $CFG/${UUID}.cfg
$SCP $CFG/${UUID}.cfg $NODODESTINO:$CFG/${UUID}.cfg
$SCP $CFG/${UUID}.cfg $HOSTNAME:$CFG/${UUID}.cfg


# destino # destino
echo "enviamos config a destino..." echo "enviamos config a destino..."


$SSH $NODODESTINO zonecfg -z ${UUID} < $CFG/${UUID}.cfg
$SSH $NODODESTINO zoneadm -z ${UUID} attach
$SSH $NODODESTINO zoneadm -z ${UUID} halt
$SSH $HOSTNAME zonecfg -z ${UUID} < $CFG/${UUID}.cfg
$SSH $HOSTNAME zoneadm -z ${UUID} attach
$SSH $HOSTNAME zoneadm -z ${UUID} halt


# reestablecemos el alias que usa vmadm # reestablecemos el alias que usa vmadm


$SSH $NODODESTINO vmadm update ${UUID} alias=${ALIAS}
$SSH $HOSTNAME vmadm update ${UUID} alias=${ALIAS}
vmadm update ${UUID} alias=${ALIAS} vmadm update ${UUID} alias=${ALIAS}


# detenemos la zona en local # detenemos la zona en local
@@ -82,7 +100,7 @@ zoneadm -z ${UUID} halt


# iniciamos la zona en remoto # iniciamos la zona en remoto


$SSH $NODODESTINO zoneadm -z ${UUID} boot
$SSH $HOSTNAME zoneadm -z ${UUID} boot




# TODO: # TODO:


Načítá se…
Zrušit
Uložit